1 m4_divert(-1)                                                       -*- C 
-*- 
   3 # GLR skeleton for Bison 
   4 # Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. 
   6 # This program is free software; you can redistribute it and/or modify 
   7 # it under the terms of the GNU General Public License as published by 
   8 # the Free Software Foundation; either version 2 of the License, or 
   9 # (at your option) any later version. 
  11 # This program is distributed in the hope that it will be useful, 
  12 # but WITHOUT ANY WARRANTY; without even the implied warranty of 
  13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
  14 # GNU General Public License for more details. 
  16 # You should have received a copy of the GNU General Public License 
  17 # along with this program; if not, write to the Free Software 
  18 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 
  22 ## ---------------- ## 
  24 ## ---------------- ## 
  27 m4_define_default([b4_stack_depth_max
], [10000]) 
  28 m4_define_default([b4_stack_depth_init
],  [200]) 
  32 ## ------------------------ ## 
  33 ## Pure/impure interfaces.  ## 
  34 ## ------------------------ ## 
  39 # Accumule in b4_lex_param all the yylex arguments. 
  40 # Yes, this is quite ugly... 
  41 m4_define([b4_lex_param
], 
  42 m4_dquote(b4_pure_if([[[[YYSTYPE 
*]], [[yylvalp]]][]dnl
 
  43 b4_location_if([, [[YYLTYPE 
*], [yyllocp
]]])])dnl
 
  44 m4_ifdef([b4_lex_param
], [, ]b4_lex_param
))) 
  49 m4_define([b4_user_formals
], 
  50 [m4_ifset([b4_parse_param
], [, b4_c_ansi_formals(b4_parse_param
)])]) 
  55 # Arguments passed to yyerror: user args plus yylloc. 
  56 m4_define([b4_yyerror_args
], 
  57 [b4_pure_if([b4_location_if([yylocp
, ])])dnl
 
  58 m4_ifset([b4_parse_param
], [b4_c_args(b4_parse_param
), ])]) 
  63 # Same as above, but on the look-ahead, hence yyllocp instead of yylocp. 
  64 m4_define([b4_lyyerror_args
], 
  65 [b4_pure_if([b4_location_if([yyllocp
, ])])dnl
 
  66 m4_ifset([b4_parse_param
], [b4_c_args(b4_parse_param
), ])]) 
  71 # Arguments needed by yyerror: user args plus yylloc. 
  72 m4_define([b4_pure_args
], 
  73 [b4_pure_if([b4_location_if([, yylocp
])])[]b4_user_args
]) 
  78 # Arguments passed to yyerror: user formals plus yyllocp. 
  79 m4_define([b4_pure_formals
], 
  80 [b4_pure_if([b4_location_if([, YYLTYPE 
*yylocp
])])[]b4_user_formals
]) 
  85 # Same as above, but on the look-ahead, hence yyllocp instead of yylocp. 
  86 m4_define([b4_lpure_args
], 
  87 [b4_pure_if([b4_location_if([, yyllocp
])])[]b4_user_args
]) 
  92 # Same as above, but on the look-ahead, hence yyllocp instead of yylocp. 
  93 m4_define([b4_lpure_formals
], 
  94 [b4_pure_if([b4_location_if([YYLTYPE 
*yyllocp
])])[]b4_user_formals
]) 
  97 ## ----------------- ## 
  98 ## Semantic Values.  ## 
  99 ## ----------------- ## 
 102 # b4_lhs_value([TYPE]) 
 103 # -------------------- 
 104 # Expansion of $<TYPE>$. 
 105 m4_define([b4_lhs_value
], 
 106 [(*yyvalp
)[]m4_ifval([$
1], [.$
1])]) 
 109 # b4_rhs_value(RULE-LENGTH, NUM, [TYPE]) 
 110 # -------------------------------------- 
 111 # Expansion of $<TYPE>NUM, where the current rule has RULE-LENGTH 
 113 m4_define([b4_rhs_value
], 
 114 [((yyGLRStackItem 
const *)yyvsp
)@
{YYFILL (m4_eval([$
2 - $
1]))@
}.yystate
.yysemantics
.yysval
[]m4_ifval([$
3], [.$
3])]) 
 125 m4_define([b4_lhs_location
], 
 129 # b4_rhs_location(RULE-LENGTH, NUM) 
 130 # --------------------------------- 
 131 # Expansion of @NUM, where the current rule has RULE-LENGTH symbols 
 133 m4_define([b4_rhs_location
], 
 134 [((yyGLRStackItem 
const *)yyvsp
)@
{YYFILL (m4_eval([$
2 - $
1]))@
}.yystate
.yyloc
]) 
 136 # We do want M4 expansion after # for CPP macros. 
 139 @output @output_parser_name@
 
 140 b4_copyright([Skeleton parser 
for GLR parsing with Bison
], [2002, 2003, 2004]) 
 142 /* This is the parser code for GLR (Generalized LR) parser. */ 
 151 m4_if(b4_prefix
[], [yy
], [], 
 152 [/* If NAME_PREFIX is specified substitute the variables and functions 
 154 #define yyparse b4_prefix[]parse 
 155 #define yylex   b4_prefix[]lex 
 156 #define yyerror b4_prefix[]error 
 157 #define yylval  b4_prefix[]lval 
 158 #define yychar  b4_prefix[]char 
 159 #define yydebug b4_prefix[]debug 
 160 #define yynerrs b4_prefix[]nerrs 
 161 #define yylloc b4_prefix[]lloc]) 
 163 b4_token_defines(b4_tokens
) 
 165 /* Copy the first part of user declarations.  */ 
 168 /* Enabling traces.  */ 
 170 # define YYDEBUG ]b4_debug[ 
 173 /* Enabling verbose error messages.  */ 
 174 #ifdef YYERROR_VERBOSE 
 175 # undef YYERROR_VERBOSE 
 176 # define YYERROR_VERBOSE 1 
 178 # define YYERROR_VERBOSE ]b4_error_verbose[ 
 181 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) 
 182 ]m4_ifdef([b4_stype
], 
 183 [b4_syncline([b4_stype_line
], [b4_filename
]) 
 184 typedef union m4_bregexp(b4_stype
, [^{], [YYSTYPE 
])b4_stype YYSTYPE
; 
 185 /* Line __line__ of glr.c.  */ 
 186 b4_syncline([@oline@
], [@ofile@
])], 
 187 [typedef int YYSTYPE
;])[ 
 188 # define YYSTYPE_IS_DECLARED 1 
 189 # define YYSTYPE_IS_TRIVIAL 1 
 192 #if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED) 
 193 typedef struct YYLTYPE
 
 204 # define YYLTYPE_IS_DECLARED 1 
 205 # define YYLTYPE_IS_TRIVIAL 1 
 208 /* Default (constant) values used for initialization for null 
 209    right-hand sides.  Unlike the standard yacc.c template, 
 210    here we set the default values of $$ and $@@ to zeroed-out 
 211    values.  Since the default value of these quantities is undefined, 
 212    this behavior is technically correct. */ 
 213 static YYSTYPE yyval_default
; 
 214 static YYLTYPE yyloc_default
; 
 216 /* Copy the second part of user declarations.  */ 
 219 ]/* Line __line__ of glr.c.  */ 
 220 b4_syncline([@oline@
], [@ofile@
]) 
 226 # define YYMALLOC malloc 
 229 # define YYREALLOC realloc 
 235    typedef unsigned char yybool
; 
 244 #ifndef __attribute__ 
 245 /* This feature is available in gcc versions 2.5 and later.  */ 
 246 # if !defined (__GNUC__) || __GNUC__ < 2 || \ 
 247 (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__ 
 248 #  define __attribute__(Spec) /* empty */ 
 253 # define YYASSERT(condition) ((void) ((condition) || (abort (), 0))) 
 256 #ifndef ATTRIBUTE_UNUSED 
 257 # define ATTRIBUTE_UNUSED __attribute__ ((__unused__)) 
 260 /* YYFINAL -- State number of the termination state. */ 
 261 #define YYFINAL  ]b4_final_state_number[ 
 262 /* YYLAST -- Last index in YYTABLE.  */ 
 263 #define YYLAST   ]b4_last[ 
 265 /* YYNTOKENS -- Number of terminals. */ 
 266 #define YYNTOKENS  ]b4_tokens_number[ 
 267 /* YYNNTS -- Number of nonterminals. */ 
 268 #define YYNNTS  ]b4_nterms_number[ 
 269 /* YYNRULES -- Number of rules. */ 
 270 #define YYNRULES  ]b4_rules_number[ 
 271 /* YYNRULES -- Number of states. */ 
 272 #define YYNSTATES  ]b4_states_number[ 
 273 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */ 
 274 #define YYMAXRHS ]b4_r2_max[ 
 275 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle 
 276    accessed by $0, $-1, etc., in any rule. */ 
 277 #define YYMAXLEFT ]b4_max_left_semantic_context[ 
 279 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X.  */ 
 280 #define YYUNDEFTOK  ]b4_undef_token_number[ 
 281 #define YYMAXUTOK   ]b4_user_token_number_max[ 
 283 #define YYTRANSLATE(YYX)                                                \ 
 284   ((YYX <= 0) ? YYEOF :                                                 \ 
 285    (unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 
 287 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */ 
 288 static const ]b4_int_type_for([b4_translate
])[ yytranslate
[] = 
 294 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 
 296 static const ]b4_int_type_for([b4_prhs
])[ yyprhs
[] = 
 301 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ 
 302 static const ]b4_int_type_for([b4_rhs
])[ yyrhs
[] = 
 307 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */ 
 308 static const ]b4_int_type_for([b4_rline
])[ yyrline
[] = 
 314 #if (YYDEBUG) || YYERROR_VERBOSE 
 315 /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 
 316    First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 
 317 static const char *const yytname
[] = 
 323 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */ 
 324 static const ]b4_int_type_for([b4_r1
])[ yyr1
[] = 
 329 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */ 
 330 static const ]b4_int_type_for([b4_r2
])[ yyr2
[] = 
 335 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */ 
 336 static const ]b4_int_type_for([b4_dprec
])[ yydprec
[] = 
 341 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */ 
 342 static const ]b4_int_type_for([b4_merger
])[ yymerger
[] = 
 347 /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE 
 348    doesn't specify something else to do.  Zero means the default is an 
 350 static const ]b4_int_type_for([b4_defact
])[ yydefact
[] = 
 355 /* YYPDEFGOTO[NTERM-NUM]. */ 
 356 static const ]b4_int_type_for([b4_defgoto
])[ yydefgoto
[] = 
 361 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 
 363 #define YYPACT_NINF ]b4_pact_ninf[ 
 364 static const ]b4_int_type_for([b4_pact
])[ yypact
[] = 
 369 /* YYPGOTO[NTERM-NUM].  */ 
 370 static const ]b4_int_type_for([b4_pgoto
])[ yypgoto
[] = 
 375 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If 
 376    positive, shift that token.  If negative, reduce the rule which 
 377    number is the opposite.  If zero, do what YYDEFACT says. 
 378    If YYTABLE_NINF, syntax error.  */ 
 379 #define YYTABLE_NINF ]b4_table_ninf[ 
 380 static const ]b4_int_type_for([b4_table
])[ yytable
[] = 
 385 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of 
 386    list of conflicting reductions corresponding to action entry for 
 387    state STATE-NUM in yytable.  0 means no conflicts.  The list in 
 388    yyconfl is terminated by a rule number of 0.  */ 
 389 static const ]b4_int_type_for([b4_conflict_list_heads
])[ yyconflp
[] = 
 391   ]b4_conflict_list_heads
[ 
 394 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by 
 395    0, pointed into by YYCONFLP.  */ 
 396 ]dnl Do 
not use b4_int_type_for here
, since there are places where
 
 397 dnl pointers onto yyconfl are taken
, which type is 
"short int *". 
 398 dnl We probably ought to introduce a type 
for confl
. 
 399 [static const short int yyconfl
[] = 
 401   ]b4_conflicting_rules
[ 
 404 static const ]b4_int_type_for([b4_check
])[ yycheck
[] = 
 409 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 
 410    symbol of state STATE-NUM.  */ 
 411 static const ]b4_int_type_for([b4_stos
])[ yystos
[] = 
 417 /* Prevent warning if -Wmissing-prototypes.  */ 
 418 ]b4_c_ansi_function_decl([yyparse
], [int], b4_parse_param
)[ 
 420 /* Error token number */ 
 423 /* YYLLOC_DEFAULT -- Compute the default location (before the actions 
 427 #define YYRHSLOC(yyRhs,YYK) ((yyRhs)[YYK].yystate.yyloc) 
 429 #ifndef YYLLOC_DEFAULT 
 430 # define YYLLOC_DEFAULT(yyCurrent, yyRhs, YYN)                  \ 
 431    ((yyCurrent).first_line = YYRHSLOC(yyRhs, 1).first_line,     \ 
 432     (yyCurrent).first_column = YYRHSLOC(yyRhs, 1).first_column, \ 
 433     (yyCurrent).last_line = YYRHSLOC(yyRhs, YYN).last_line,     \ 
 434     (yyCurrent).last_column  = YYRHSLOC(yyRhs, YYN).last_column) 
 437 #ifndef YYLLOC_DEFAULT 
 438 # define YYLLOC_DEFAULT(yyCurrent, yyRhs, YYN) ((void) 0) 
 443 /* YYLEX -- calling `yylex' with the right arguments.  */ 
 444 #define YYLEX ]b4_c_function_call([yylex], [int], b4_lex_param)[ 
 449 #define yynerrs (yystack->yyerrcnt) 
 451 #define yychar (yystack->yyrawchar)], 
 459 static const int YYEOF 
= 0; 
 460 static const int YYEMPTY 
= -2; 
 462 typedef enum { yyok
, yyaccept
, yyabort
, yyerr 
} YYRESULTTAG
; 
 465    do { YYRESULTTAG yyflag = YYE; if (yyflag != yyok) return yyflag; }       \ 
 470 #if ! defined (YYFPRINTF) 
 471 #  define YYFPRINTF fprintf 
 474 # define YYDPRINTF(Args)                        \ 
 480 ]b4_yysymprint_generate([b4_c_ansi_function_def
])[ 
 482 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)          \ 
 486       YYFPRINTF (stderr, "%s ", Title);                         \ 
 487       yysymprint (stderr,                                       \ 
 488                   Type, Value]b4_location_if([, Location])[);   \ 
 489       YYFPRINTF (stderr, "\n");                                 \ 
 493 /* Nonzero means print parse trace.  It is left uninitialized so that 
 494    multiple parsers can coexist.  */ 
 499 # define YYDPRINTF(Args) 
 500 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) 
 502 #endif /* !YYDEBUG */ 
 504 /* YYINITDEPTH -- initial size of the parser's stacks.  */ 
 506 # define YYINITDEPTH ]b4_stack_depth_init[ 
 509 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 
 510    if the built-in stack extension method is used). 
 512    Do not make this value too large; the results are undefined if 
 513    SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem) 
 514    evaluated with infinite-precision integer arithmetic.  */ 
 521 # define YYMAXDEPTH ]b4_stack_depth_max[ 
 524 /* Minimum number of free items on the stack allowed after an 
 525    allocation.  This is to allow allocation and initialization 
 526    to be completed by functions that call expandGLRStack before the 
 527    stack is expanded, thus insuring that all necessary pointers get 
 528    properly redirected to new data. */ 
 531 #if (! defined (YYSTACKEXPANDABLE) \ 
 532      && (! defined (__cplusplus) \ 
 533          || (]b4_location_if([[defined (YYLTYPE_IS_TRIVIAL) && YYLTYPE_IS_TRIVIAL \ 
 534              && ]])[defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) 
 535 #define YYSTACKEXPANDABLE 1 
 537 #define YYSTACKEXPANDABLE 0 
 540 /** State numbers, as in LALR(1) machine */ 
 541 typedef int yyStateNum
; 
 543 /** Rule numbers, as in LALR(1) machine */ 
 544 typedef int yyRuleNum
; 
 546 /** Grammar symbol */ 
 547 typedef short int yySymbol
; 
 549 /** Item references, as in LALR(1) machine */ 
 550 typedef short int yyItemNum
; 
 552 typedef struct yyGLRState yyGLRState
; 
 553 typedef struct yySemanticOption yySemanticOption
; 
 554 typedef union yyGLRStackItem yyGLRStackItem
; 
 555 typedef struct yyGLRStack yyGLRStack
; 
 556 typedef struct yyGLRStateSet yyGLRStateSet
; 
 561   yyStateNum yylrState
; 
 565     yySemanticOption
* yyfirstVal
; 
 571 struct yyGLRStateSet 
{ 
 572   yyGLRState
** yystates
; 
 573   size_t yysize
, yycapacity
; 
 576 struct yySemanticOption 
{ 
 580   yySemanticOption
* yynext
; 
 583 union yyGLRStackItem 
{ 
 585   yySemanticOption yyoption
; 
 597   jmp_buf yyexception_buffer
; 
 598   yyGLRStackItem
* yyitems
; 
 599   yyGLRStackItem
* yynextFree
; 
 601   yyGLRState
* yysplitPoint
; 
 602   yyGLRState
* yylastDeleted
; 
 603   yyGLRStateSet yytops
; 
 606 static void yyinitGLRStack (yyGLRStack
* yystack
, size_t yysize
); 
 607 static void yyexpandGLRStack (yyGLRStack
* yystack
]b4_pure_formals
[); 
 608 static void yyfreeGLRStack (yyGLRStack
* yystack
); 
 611 yyFail (yyGLRStack
* yystack
]b4_pure_formals
[, const char* yyformat
, ...) 
 613   yystack
->yyerrflag 
= 1; 
 614   if (yyformat 
!= NULL
) 
 618       va_start (yyap
, yyformat
); 
 619       vsprintf (yymsg
, yyformat
, yyap
); 
 620       yyerror (]b4_yyerror_args
[yymsg
); 
 622   longjmp (yystack
->yyexception_buffer
, 1); 
 625 #if YYDEBUG || YYERROR_VERBOSE 
 626 /** A printable representation of TOKEN.  Valid until next call to 
 628 static inline const char* 
 629 yytokenName (yySymbol yytoken
) 
 631   if (yytoken 
== YYEMPTY
) 
 634   return yytname
[yytoken
]; 
 638 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting 
 639  *  at YYVSP[YYLOW0].yystate.yypred.  Leaves YYVSP[YYLOW1].yystate.yypred 
 640  *  containing the pointer to the next state in the chain. Assumes 
 641  *  YYLOW1 < YYLOW0.  */ 
 642 static void yyfillin (yyGLRStackItem 
*, int, int) ATTRIBUTE_UNUSED
; 
 644 yyfillin (yyGLRStackItem 
*yyvsp
, int yylow0
, int yylow1
) 
 648   s 
= yyvsp
[yylow0
].yystate
.yypred
; 
 649   for (i 
= yylow0
-1; i 
>= yylow1
; i 
-= 1) 
 651       YYASSERT (s
->yyresolved
); 
 652       yyvsp
[i
].yystate
.yyresolved 
= yytrue
; 
 653       yyvsp
[i
].yystate
.yysemantics
.yysval 
= s
->yysemantics
.yysval
; 
 654       yyvsp
[i
].yystate
.yyloc 
= s
->yyloc
; 
 655       s 
= yyvsp
[i
].yystate
.yypred 
= s
->yypred
; 
 659 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1.  Otherwise, fill in 
 660    YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1. 
 661    For convenience, always return YYLOW1.  */ 
 662 static inline int yyfill (yyGLRStackItem 
*, int *, int, yybool
) 
 665 yyfill (yyGLRStackItem 
*yyvsp
, int *yylow
, int yylow1
, yybool yynormal
) 
 667   if (!yynormal 
&& yylow1 
< *yylow
) 
 669       yyfillin (yyvsp
, *yylow
, yylow1
); 
 675 /** Perform user action for rule number YYN, with RHS length YYRHSLEN, 
 676  *  and top stack item YYVSP.  YYLVALP points to place to put semantic 
 677  *  value ($$), and yylocp points to place for location information 
 678  *  (@@$). Returns yyok for normal return, yyaccept for YYACCEPT, 
 679  *  yyerr for YYERROR, yyabort for YYABORT. */ 
 681 yyuserAction (yyRuleNum yyn
, int yyrhslen
, yyGLRStackItem
* yyvsp
, 
 682               YYSTYPE
* yyvalp
, YYLTYPE
* yylocp
, yyGLRStack
* yystack
 
 685   yybool yynormal ATTRIBUTE_UNUSED 
= (yystack
->yysplitPoint 
== NULL
); 
 689 # define yyerrok (yystack->yyerrState = 0) 
 691 # define YYACCEPT return yyaccept 
 693 # define YYABORT return yyabort 
 695 # define YYERROR return yyerrok, yyerr 
 697 # define YYRECOVERING (yystack->yyerrState != 0) 
 699 # define yyclearin (yychar = *(yystack->yytokenp) = YYEMPTY) 
 701 # define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal) 
 703 # define YYBACKUP(Token, Value)                                              \ 
 704   return yyerror (]b4_yyerror_args["syntax error: cannot back up"),          \ 
 710       *yyvalp 
= yyval_default
; 
 711       *yylocp 
= yyloc_default
; 
 715       *yyvalp 
= yyvsp
[YYFILL (1-yyrhslen
)].yystate
.yysemantics
.yysval
; 
 716       YYLLOC_DEFAULT (*yylocp
, yyvsp 
- yyrhslen
, yyrhslen
); 
 733 /* Line __line__ of glr.c.  */ 
 734 b4_syncline([@oline@
], [@ofile@
]) 
 739 yyuserMerge (int yyn
, YYSTYPE
* yy0
, YYSTYPE
* yy1
) 
 741   /* `Use' the arguments.  */ 
 751                               /* Bison grammar-table manipulation.  */ 
 753 ]b4_yydestruct_generate([b4_c_ansi_function_def
])[ 
 755 /** Number of symbols composing the right hand side of rule #RULE. */ 
 757 yyrhsLength (yyRuleNum yyrule
) 
 762 /** Left-hand-side symbol for rule #RULE. */ 
 763 static inline yySymbol
 
 764 yylhsNonterm (yyRuleNum yyrule
) 
 769 #define yyis_pact_ninf(yystate) \ 
 770   ]m4_if(m4_eval(b4_pact_ninf < b4_pact_min), 1, 
 772          ((yystate
) == YYPACT_NINF
))[ 
 774 /** True iff LR state STATE has only a default reduction (regardless 
 777 yyisDefaultedState (yyStateNum yystate
) 
 779   return yyis_pact_ninf (yypact
[yystate
]); 
 782 /** The default reduction for STATE, assuming it has one. */ 
 783 static inline yyRuleNum
 
 784 yydefaultAction (yyStateNum yystate
) 
 786   return yydefact
[yystate
]; 
 789 #define yyis_table_ninf(yytable_value) \ 
 790   ]m4_if(m4_eval(b4_table_ninf < b4_table_min), 1, 
 792          ((yytable_value
) == YYTABLE_NINF
))[ 
 794 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN. 
 796  *    R < 0:  Reduce on rule -R. 
 798  *    R > 0:  Shift to state R. 
 799  *  Set *CONFLICTS to a pointer into yyconfl to 0-terminated list of 
 800  *  conflicting reductions. 
 803 yygetLRActions (yyStateNum yystate
, int yytoken
, 
 804                 int* yyaction
, const short int** yyconflicts
) 
 806   int yyindex 
= yypact
[yystate
] + yytoken
; 
 807   if (yyindex 
< 0 || YYLAST 
< yyindex 
|| yycheck
[yyindex
] != yytoken
) 
 809       *yyaction 
= -yydefact
[yystate
]; 
 810       *yyconflicts 
= yyconfl
; 
 812   else if (! yyis_table_ninf (yytable
[yyindex
])) 
 814       *yyaction 
= yytable
[yyindex
]; 
 815       *yyconflicts 
= yyconfl 
+ yyconflp
[yyindex
]; 
 820       *yyconflicts 
= yyconfl 
+ yyconflp
[yyindex
]; 
 824 static inline yyStateNum
 
 825 yyLRgotoState (yyStateNum yystate
, yySymbol yylhs
) 
 828   yyr 
= yypgoto
[yylhs 
- YYNTOKENS
] + yystate
; 
 829   if (0 <= yyr 
&& yyr 
<= YYLAST 
&& yycheck
[yyr
] == yystate
) 
 832     return yydefgoto
[yylhs 
- YYNTOKENS
]; 
 836 yyisShiftAction (int yyaction
) 
 842 yyisErrorAction (int yyaction
) 
 844   return yyaction 
== 0; 
 850 yyaddDeferredAction (yyGLRStack
* yystack
, yyGLRState
* yystate
, 
 851                      yyGLRState
* rhs
, yyRuleNum yyrule
]b4_pure_formals
[) 
 853   yySemanticOption
* yynewItem
; 
 854   yynewItem 
= &yystack
->yynextFree
->yyoption
; 
 855   yystack
->yyspaceLeft 
-= 1; 
 856   yystack
->yynextFree 
+= 1; 
 857   yynewItem
->yyisState 
= yyfalse
; 
 858   yynewItem
->yystate 
= rhs
; 
 859   yynewItem
->yyrule 
= yyrule
; 
 860   yynewItem
->yynext 
= yystate
->yysemantics
.yyfirstVal
; 
 861   yystate
->yysemantics
.yyfirstVal 
= yynewItem
; 
 862   if (yystack
->yyspaceLeft 
< YYHEADROOM
) 
 863     yyexpandGLRStack (yystack
]b4_pure_args
[); 
 868 /** Initialize SET to a singleton set containing an empty stack. */ 
 870 yyinitStateSet (yyGLRStateSet
* yyset
) 
 873   yyset
->yycapacity 
= 16; 
 874   yyset
->yystates 
= (yyGLRState
**) YYMALLOC (16 * sizeof yyset
->yystates
[0]); 
 875   yyset
->yystates
[0] = NULL
; 
 878 static void yyfreeStateSet (yyGLRStateSet
* yyset
) 
 880   YYFREE (yyset
->yystates
); 
 883 /** Initialize STACK to a single empty stack, with total maximum 
 884  *  capacity for all stacks of SIZE. */ 
 886 yyinitGLRStack (yyGLRStack
* yystack
, size_t yysize
) 
 888   yystack
->yyerrflag 
= 0; 
 889   yystack
->yyerrState 
= 0; 
 891   yystack
->yyspaceLeft 
= yysize
; 
 892   yystack
->yynextFree 
= yystack
->yyitems 
= 
 893     (yyGLRStackItem
*) YYMALLOC (yysize 
* sizeof yystack
->yynextFree
[0]); 
 894   yystack
->yysplitPoint 
= NULL
; 
 895   yystack
->yylastDeleted 
= NULL
; 
 896   yyinitStateSet (&yystack
->yytops
); 
 899 #define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \ 
 900   &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE 
 902 /** If STACK is expandable, extend it.  WARNING: Pointers into the 
 903     stack from outside should be considered invalid after this call. 
 904     We always expand when there are 1 or fewer items left AFTER an 
 905     allocation, so that we can avoid having external pointers exist 
 906     across an allocation. */ 
 908 yyexpandGLRStack (yyGLRStack
* yystack
]b4_pure_formals
[) 
 910 #if YYSTACKEXPANDABLE 
 911   yyGLRStack yynewStack
; 
 912   yyGLRStackItem
* yyp0
, *yyp1
; 
 913   size_t yysize
, yynewSize
; 
 915   yysize 
= yystack
->yynextFree 
- yystack
->yyitems
; 
 916   if (YYMAXDEPTH 
<= yysize
) 
 917     yyFail (yystack
][]b4_pure_args
[, "parser stack overflow"); 
 918   yynewSize 
= 2*yysize
; 
 919   if (YYMAXDEPTH 
< yynewSize
) 
 920     yynewSize 
= YYMAXDEPTH
; 
 921   yyinitGLRStack (&yynewStack
, yynewSize
); 
 922   for (yyp0 
= yystack
->yyitems
, yyp1 
= yynewStack
.yyitems
, yyn 
= yysize
; 
 924        yyn 
-= 1, yyp0 
+= 1, yyp1 
+= 1) 
 927       if (*(yybool 
*) yyp0
) 
 929           yyGLRState
* yys0 
= &yyp0
->yystate
; 
 930           yyGLRState
* yys1 
= &yyp1
->yystate
; 
 931           if (yys0
->yypred 
!= NULL
) 
 933               YYRELOC (yyp0
, yyp1
, yys0
->yypred
, yystate
); 
 934           if (! yys0
->yyresolved 
&& yys0
->yysemantics
.yyfirstVal 
!= NULL
) 
 935             yys1
->yysemantics
.yyfirstVal 
= 
 936               YYRELOC(yyp0
, yyp1
, yys0
->yysemantics
.yyfirstVal
, yyoption
); 
 940           yySemanticOption
* yyv0 
= &yyp0
->yyoption
; 
 941           yySemanticOption
* yyv1 
= &yyp1
->yyoption
; 
 942           if (yyv0
->yystate 
!= NULL
) 
 943             yyv1
->yystate 
= YYRELOC (yyp0
, yyp1
, yyv0
->yystate
, yystate
); 
 944           if (yyv0
->yynext 
!= NULL
) 
 945             yyv1
->yynext 
= YYRELOC (yyp0
, yyp1
, yyv0
->yynext
, yyoption
); 
 948   if (yystack
->yysplitPoint 
!= NULL
) 
 949     yystack
->yysplitPoint 
= YYRELOC (yystack
->yyitems
, yynewStack
.yyitems
, 
 950                                  yystack
->yysplitPoint
, yystate
); 
 952   for (yyn 
= 0; yyn 
< yystack
->yytops
.yysize
; yyn 
+= 1) 
 953     if (yystack
->yytops
.yystates
[yyn
] != NULL
) 
 954       yystack
->yytops
.yystates
[yyn
] = 
 955         YYRELOC (yystack
->yyitems
, yynewStack
.yyitems
, 
 956                  yystack
->yytops
.yystates
[yyn
], yystate
); 
 957   YYFREE (yystack
->yyitems
); 
 958   yystack
->yyitems 
= yynewStack
.yyitems
; 
 959   yystack
->yynextFree 
= yynewStack
.yynextFree 
+ yysize
; 
 960   yystack
->yyspaceLeft 
= yynewStack
.yyspaceLeft 
- yysize
; 
 964   yyFail (yystack
][]b4_pure_args
[, "parser stack overflow"); 
 969 yyfreeGLRStack (yyGLRStack
* yystack
) 
 971   YYFREE (yystack
->yyitems
); 
 972   yyfreeStateSet (&yystack
->yytops
); 
 975 /** Assuming that S is a GLRState somewhere on STACK, update the 
 976  *  splitpoint of STACK, if needed, so that it is at least as deep as 
 979 yyupdateSplit (yyGLRStack
* yystack
, yyGLRState
* yys
) 
 981   if (yystack
->yysplitPoint 
!= NULL 
&& yystack
->yysplitPoint 
> yys
) 
 982     yystack
->yysplitPoint 
= yys
; 
 985 /** Invalidate stack #K in STACK. */ 
 987 yymarkStackDeleted (yyGLRStack
* yystack
, int yyk
) 
 989   if (yystack
->yytops
.yystates
[yyk
] != NULL
) 
 990     yystack
->yylastDeleted 
= yystack
->yytops
.yystates
[yyk
]; 
 991   yystack
->yytops
.yystates
[yyk
] = NULL
; 
 994 /** Undelete the last stack that was marked as deleted.  Can only be 
 995     done once after a deletion, and only when all other stacks have 
 998 yyundeleteLastStack (yyGLRStack
* yystack
) 
1000   if (yystack
->yylastDeleted 
== NULL 
|| yystack
->yytops
.yysize 
!= 0) 
1002   yystack
->yytops
.yystates
[0] = yystack
->yylastDeleted
; 
1003   yystack
->yytops
.yysize 
= 1; 
1004   YYDPRINTF ((stderr
, "Restoring last deleted stack as stack #0.\n")); 
1005   yystack
->yylastDeleted 
= NULL
; 
1009 yyremoveDeletes (yyGLRStack
* yystack
) 
1013   while (yyj 
< yystack
->yytops
.yysize
) 
1015       if (yystack
->yytops
.yystates
[yyi
] == NULL
) 
1019               YYDPRINTF ((stderr
, "Removing dead stacks.\n")); 
1021           yystack
->yytops
.yysize 
-= 1; 
1025           yystack
->yytops
.yystates
[yyj
] = yystack
->yytops
.yystates
[yyi
]; 
1028               YYDPRINTF ((stderr
, "Rename stack %lu -> %lu.\n", 
1029                           (unsigned long int) yyi
, (unsigned long int) yyj
)); 
1037 /** Shift to a new state on stack #K of STACK, corresponding to LR state 
1038  * LRSTATE, at input position POSN, with (resolved) semantic value SVAL. */ 
1040 yyglrShift (yyGLRStack
* yystack
, int yyk
, yyStateNum yylrState
, size_t yyposn
, 
1041             YYSTYPE yysval
, YYLTYPE
* yylocp
]b4_user_formals
[) 
1043   yyGLRStackItem
* yynewItem
; 
1045   yynewItem 
= yystack
->yynextFree
; 
1046   yystack
->yynextFree 
+= 1; 
1047   yystack
->yyspaceLeft 
-= 1; 
1048   yynewItem
->yystate
.yyisState 
= yytrue
; 
1049   yynewItem
->yystate
.yylrState 
= yylrState
; 
1050   yynewItem
->yystate
.yyposn 
= yyposn
; 
1051   yynewItem
->yystate
.yyresolved 
= yytrue
; 
1052   yynewItem
->yystate
.yypred 
= yystack
->yytops
.yystates
[yyk
]; 
1053   yystack
->yytops
.yystates
[yyk
] = &yynewItem
->yystate
; 
1054   yynewItem
->yystate
.yysemantics
.yysval 
= yysval
; 
1055   yynewItem
->yystate
.yyloc 
= *yylocp
; 
1056   if (yystack
->yyspaceLeft 
< YYHEADROOM
) 
1057     yyexpandGLRStack (yystack
]b4_pure_args
[); 
1060 /** Shift stack #K of YYSTACK, to a new state corresponding to LR 
1061  *  state YYLRSTATE, at input position YYPOSN, with the (unresolved) 
1062  *  semantic value of YYRHS under the action for YYRULE. */ 
1064 yyglrShiftDefer (yyGLRStack
* yystack
, int yyk
, yyStateNum yylrState
, 
1065                  size_t yyposn
, yyGLRState
* rhs
, yyRuleNum yyrule
]b4_pure_formals
[) 
1067   yyGLRStackItem
* yynewItem
; 
1069   yynewItem 
= yystack
->yynextFree
; 
1070   yynewItem
->yystate
.yyisState 
= yytrue
; 
1071   yynewItem
->yystate
.yylrState 
= yylrState
; 
1072   yynewItem
->yystate
.yyposn 
= yyposn
; 
1073   yynewItem
->yystate
.yyresolved 
= yyfalse
; 
1074   yynewItem
->yystate
.yypred 
= yystack
->yytops
.yystates
[yyk
]; 
1075   yynewItem
->yystate
.yysemantics
.yyfirstVal 
= NULL
; 
1076   yystack
->yytops
.yystates
[yyk
] = &yynewItem
->yystate
; 
1077   yystack
->yynextFree 
+= 1; 
1078   yystack
->yyspaceLeft 
-= 1; 
1079   yyaddDeferredAction (yystack
, &yynewItem
->yystate
, rhs
, yyrule
]b4_pure_args
[); 
1082 /** Pop the symbols consumed by reduction #RULE from the top of stack 
1083  *  #K of STACK, and perform the appropriate semantic action on their 
1084  *  semantic values.  Assumes that all ambiguities in semantic values 
1085  *  have been previously resolved. Set *VALP to the resulting value, 
1086  *  and *LOCP to the computed location (if any).  Return value is as 
1087  *  for userAction. */ 
1088 static inline YYRESULTTAG
 
1089 yydoAction (yyGLRStack
* yystack
, int yyk
, yyRuleNum yyrule
, 
1090             YYSTYPE
* yyvalp
, YYLTYPE
* yylocp
]b4_user_formals
[) 
1092   int yynrhs 
= yyrhsLength (yyrule
); 
1094   if (yystack
->yysplitPoint 
== NULL
) 
1096       /* Standard special case: single stack. */ 
1097       yyGLRStackItem
* rhs 
= (yyGLRStackItem
*) yystack
->yytops
.yystates
[yyk
]; 
1098       YYASSERT (yyk 
== 0); 
1099       yystack
->yynextFree 
-= yynrhs
; 
1100       yystack
->yyspaceLeft 
+= yynrhs
; 
1101       yystack
->yytops
.yystates
[0] = & yystack
->yynextFree
[-1].yystate
; 
1102       return yyuserAction (yyrule
, yynrhs
, rhs
, 
1103                            yyvalp
, yylocp
, yystack
]b4_user_args
[); 
1109       yyGLRStackItem yyrhsVals
[YYMAXRHS 
+ YYMAXLEFT 
+ 1]; 
1110       yys 
= yyrhsVals
[YYMAXRHS 
+ YYMAXLEFT
].yystate
.yypred
 
1111         = yystack
->yytops
.yystates
[yyk
]; 
1112       for (yyi 
= 0; yyi 
< yynrhs
; yyi 
+= 1) 
1117       yyupdateSplit (yystack
, yys
); 
1118       yystack
->yytops
.yystates
[yyk
] = yys
; 
1119       return yyuserAction (yyrule
, yynrhs
, yyrhsVals 
+ YYMAXRHS 
+ YYMAXLEFT 
- 1, 
1120                            yyvalp
, yylocp
, yystack
]b4_user_args
[); 
1125 # define YY_REDUCE_PRINT(K, Rule) 
1127 # define YY_REDUCE_PRINT(K, Rule)       \ 
1130     yy_reduce_print (K, Rule);          \ 
1133 /*----------------------------------------------------------. 
1134 | Report that the RULE is going to be reduced on stack #K.  | 
1135 `----------------------------------------------------------*/ 
1138 yy_reduce_print (size_t yyk
, yyRuleNum yyrule
) 
1141   YYFPRINTF (stderr
, "Reducing stack %lu by rule %d (line %lu), ", 
1142              (unsigned long int) yyk
, yyrule 
- 1, 
1143              (unsigned long int) yyrline
[yyrule
]); 
1144   /* Print the symbols being reduced, and their result.  */ 
1145   for (yyi 
= yyprhs
[yyrule
]; 0 <= yyrhs
[yyi
]; yyi
++) 
1146     YYFPRINTF (stderr
, "%s ", yytokenName (yyrhs
[yyi
])); 
1147   YYFPRINTF (stderr
, "-> %s\n", yytokenName (yyr1
[yyrule
])); 
1151 /** Pop items off stack #K of STACK according to grammar rule RULE, 
1152  *  and push back on the resulting nonterminal symbol.  Perform the 
1153  *  semantic action associated with RULE and store its value with the 
1154  *  newly pushed state, if FORCEEVAL or if STACK is currently 
1155  *  unambiguous.  Otherwise, store the deferred semantic action with 
1156  *  the new state.  If the new state would have an identical input 
1157  *  position, LR state, and predecessor to an existing state on the stack, 
1158  *  it is identified with that existing state, eliminating stack #K from 
1159  *  the STACK. In this case, the (necessarily deferred) semantic value is 
1160  *  added to the options for the existing state's semantic value. 
1162 static inline YYRESULTTAG
 
1163 yyglrReduce (yyGLRStack
* yystack
, size_t yyk
, yyRuleNum yyrule
, 
1164              yybool yyforceEval
]b4_pure_formals
[) 
1166   size_t yyposn 
= yystack
->yytops
.yystates
[yyk
]->yyposn
; 
1168   if (yyforceEval 
|| yystack
->yysplitPoint 
== NULL
) 
1173       YY_REDUCE_PRINT (yyk
, yyrule
); 
1174       YYCHK (yydoAction (yystack
, yyk
, yyrule
, &yysval
, &yyloc
]b4_user_args
[)); 
1175       yyglrShift (yystack
, yyk
, 
1176                   yyLRgotoState (yystack
->yytops
.yystates
[yyk
]->yylrState
, 
1177                                  yylhsNonterm (yyrule
)), 
1178                   yyposn
, yysval
, &yyloc
]b4_user_args
[); 
1184       yyGLRState
* yys
, *yys0 
= yystack
->yytops
.yystates
[yyk
]; 
1185       yyStateNum yynewLRState
; 
1187       for (yys 
= yystack
->yytops
.yystates
[yyk
], yyn 
= yyrhsLength (yyrule
); 
1193       yyupdateSplit (yystack
, yys
); 
1194       yynewLRState 
= yyLRgotoState (yys
->yylrState
, yylhsNonterm (yyrule
)); 
1196                   "Reduced stack %lu by rule #%d; action deferred. Now in state %d.\n", 
1197                   (unsigned long int) yyk
, yyrule 
- 1, yynewLRState
)); 
1198       for (yyi 
= 0; yyi 
< yystack
->yytops
.yysize
; yyi 
+= 1) 
1199         if (yyi 
!= yyk 
&& yystack
->yytops
.yystates
[yyi
] != NULL
) 
1201             yyGLRState
* yyp
, *yysplit 
= yystack
->yysplitPoint
; 
1202             yyp 
= yystack
->yytops
.yystates
[yyi
]; 
1203             while (yyp 
!= yys 
&& yyp 
!= yysplit 
&& yyp
->yyposn 
>= yyposn
) 
1205                 if (yyp
->yylrState 
== yynewLRState 
&& yyp
->yypred 
== yys
) 
1207                     yyaddDeferredAction (yystack
, yyp
, yys0
, yyrule
]b4_pure_args
[); 
1208                     yymarkStackDeleted (yystack
, yyk
); 
1209                     YYDPRINTF ((stderr
, "Merging stack %lu into stack %lu.\n", 
1210                                 (unsigned long int) yyk
, 
1211                                 (unsigned long int) yyi
)); 
1217       yystack
->yytops
.yystates
[yyk
] = yys
; 
1218       yyglrShiftDefer (yystack
, yyk
, yynewLRState
, yyposn
, yys0
, yyrule
]b4_pure_args
[); 
1224 yysplitStack (yyGLRStack
* yystack
, int yyk
) 
1226   if (yystack
->yysplitPoint 
== NULL
) 
1228       YYASSERT (yyk 
== 0); 
1229       yystack
->yysplitPoint 
= yystack
->yytops
.yystates
[yyk
]; 
1231   if (yystack
->yytops
.yysize 
>= yystack
->yytops
.yycapacity
) 
1233       yystack
->yytops
.yycapacity 
*= 2; 
1234       yystack
->yytops
.yystates 
= 
1235         (yyGLRState
**) YYREALLOC (yystack
->yytops
.yystates
, 
1236                                   (yystack
->yytops
.yycapacity
 
1237                                    * sizeof yystack
->yytops
.yystates
[0])); 
1239   yystack
->yytops
.yystates
[yystack
->yytops
.yysize
] 
1240     = yystack
->yytops
.yystates
[yyk
]; 
1241   yystack
->yytops
.yysize 
+= 1; 
1242   return yystack
->yytops
.yysize
-1; 
1245 /** True iff Y0 and Y1 represent identical options at the top level. 
1246  *  That is, they represent the same rule applied to RHS symbols 
1247  *  that produce the same terminal symbols. */ 
1249 yyidenticalOptions (yySemanticOption
* yyy0
, yySemanticOption
* yyy1
) 
1251   if (yyy0
->yyrule 
== yyy1
->yyrule
) 
1253       yyGLRState 
*yys0
, *yys1
; 
1255       for (yys0 
= yyy0
->yystate
, yys1 
= yyy1
->yystate
, 
1256            yyn 
= yyrhsLength (yyy0
->yyrule
); 
1258            yys0 
= yys0
->yypred
, yys1 
= yys1
->yypred
, yyn 
-= 1) 
1259         if (yys0
->yyposn 
!= yys1
->yyposn
) 
1267 /** Assuming identicalOptions (Y0,Y1), (destructively) merge the 
1268  *  alternative semantic values for the RHS-symbols of Y1 into the 
1269  *  corresponding semantic value sets of the symbols of Y0. */ 
1271 yymergeOptionSets (yySemanticOption
* yyy0
, yySemanticOption
* yyy1
) 
1273   yyGLRState 
*yys0
, *yys1
; 
1275   for (yys0 
= yyy0
->yystate
, yys1 
= yyy1
->yystate
, 
1276        yyn 
= yyrhsLength (yyy0
->yyrule
); 
1278        yys0 
= yys0
->yypred
, yys1 
= yys1
->yypred
, yyn 
-= 1) 
1281     else if (! yys0
->yyresolved 
&& ! yys1
->yyresolved
) 
1283         yySemanticOption
* yyz
; 
1284         for (yyz 
= yys0
->yysemantics
.yyfirstVal
; yyz
->yynext 
!= NULL
; 
1287         yyz
->yynext 
= yys1
->yysemantics
.yyfirstVal
; 
1291 /** Y0 and Y1 represent two possible actions to take in a given 
1292  *  parsing state; return 0 if no combination is possible, 
1293  *  1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */ 
1295 yypreference (yySemanticOption
* y0
, yySemanticOption
* y1
) 
1297   yyRuleNum r0 
= y0
->yyrule
, r1 
= y1
->yyrule
; 
1298   int p0 
= yydprec
[r0
], p1 
= yydprec
[r1
]; 
1302       if (yymerger
[r0
] == 0 || yymerger
[r0
] != yymerger
[r1
]) 
1307   if (p0 
== 0 || p1 
== 0) 
1316 static YYRESULTTAG 
yyresolveValue (yySemanticOption
* yyoptionList
, 
1317                                    yyGLRStack
* yystack
, YYSTYPE
* yyvalp
, 
1318                                    YYLTYPE
* yylocp
]b4_user_formals
[); 
1321 yyresolveStates (yyGLRState
* yys
, int yyn
, yyGLRStack
* yystack
]b4_user_formals
[) 
1326       YYASSERT (yys
->yypred
); 
1327       yyflag 
= yyresolveStates (yys
->yypred
, yyn
-1, yystack
]b4_user_args
[); 
1330       if (! yys
->yyresolved
) 
1332           yyflag 
= yyresolveValue (yys
->yysemantics
.yyfirstVal
, yystack
, 
1333                                    &yys
->yysemantics
.yysval
, &yys
->yyloc
 
1337           yys
->yyresolved 
= yytrue
; 
1344 yyresolveAction (yySemanticOption
* yyopt
, yyGLRStack
* yystack
, 
1345                  YYSTYPE
* yyvalp
, YYLTYPE
* yylocp
]b4_user_formals
[) 
1347   yyGLRStackItem yyrhsVals
[YYMAXRHS 
+ YYMAXLEFT 
+ 1]; 
1350   yynrhs 
= yyrhsLength (yyopt
->yyrule
); 
1351   YYCHK (yyresolveStates (yyopt
->yystate
, yynrhs
, yystack
]b4_user_args
[)); 
1352   yyrhsVals
[YYMAXRHS 
+ YYMAXLEFT
].yystate
.yypred 
= yyopt
->yystate
; 
1353   return yyuserAction (yyopt
->yyrule
, yynrhs
, 
1354                        yyrhsVals 
+ YYMAXRHS 
+ YYMAXLEFT 
- 1, 
1355                        yyvalp
, yylocp
, yystack
]b4_user_args
[); 
1360 yyreportTree (yySemanticOption
* yyx
, int yyindent
) 
1362   int yynrhs 
= yyrhsLength (yyx
->yyrule
); 
1365   yyGLRState
* yystates
[YYMAXRHS
]; 
1366   yyGLRState yyleftmost_state
; 
1368   for (yyi 
= yynrhs
, yys 
= yyx
->yystate
; 0 < yyi
; yyi 
-= 1, yys 
= yys
->yypred
) 
1369     yystates
[yyi
] = yys
; 
1372       yyleftmost_state
.yyposn 
= 0; 
1373       yystates
[0] = &yyleftmost_state
; 
1378   if (yyx
->yystate
->yyposn 
< yys
->yyposn 
+ 1) 
1379     YYFPRINTF (stderr
, "%*s%s -> <Rule %d, empty>\n", 
1380                yyindent
, "", yytokenName (yylhsNonterm (yyx
->yyrule
)), 
1383     YYFPRINTF (stderr
, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n", 
1384                yyindent
, "", yytokenName (yylhsNonterm (yyx
->yyrule
)), 
1385                yyx
->yyrule
, (unsigned long int) (yys
->yyposn 
+ 1), 
1386                (unsigned long int) yyx
->yystate
->yyposn
); 
1387   for (yyi 
= 1; yyi 
<= yynrhs
; yyi 
+= 1) 
1389       if (yystates
[yyi
]->yyresolved
) 
1391           if (yystates
[yyi
-1]->yyposn
+1 > yystates
[yyi
]->yyposn
) 
1392             YYFPRINTF (stderr
, "%*s%s <empty>\n", yyindent
+2, "", 
1393                        yytokenName (yyrhs
[yyprhs
[yyx
->yyrule
]+yyi
-1])); 
1395             YYFPRINTF (stderr
, "%*s%s <tokens %lu .. %lu>\n", yyindent
+2, "", 
1396                        yytokenName (yyrhs
[yyprhs
[yyx
->yyrule
]+yyi
-1]), 
1397                        (unsigned long int) (yystates
[yyi 
- 1]->yyposn 
+ 1), 
1398                        (unsigned long int) yystates
[yyi
]->yyposn
); 
1401         yyreportTree (yystates
[yyi
]->yysemantics
.yyfirstVal
, yyindent
+2); 
1407 yyreportAmbiguity (yySemanticOption
* yyx0
, yySemanticOption
* yyx1
, 
1408                    yyGLRStack
* yystack
]b4_pure_formals
[) 
1410   /* `Unused' warnings.  */ 
1415   YYFPRINTF (stderr
, "Ambiguity detected.\n"); 
1416   YYFPRINTF (stderr
, "Option 1,\n"); 
1417   yyreportTree (yyx0
, 2); 
1418   YYFPRINTF (stderr
, "\nOption 2,\n"); 
1419   yyreportTree (yyx1
, 2); 
1420   YYFPRINTF (stderr
, "\n"); 
1422   yyFail (yystack
][]b4_pure_args
[, "ambiguity detected"); 
1426 /** Resolve the ambiguity represented by OPTIONLIST, perform the indicated 
1427  *  actions, and return the result. */ 
1429 yyresolveValue (yySemanticOption
* yyoptionList
, yyGLRStack
* yystack
, 
1430                 YYSTYPE
* yyvalp
, YYLTYPE
* yylocp
]b4_user_formals
[) 
1432   yySemanticOption
* yybest
; 
1433   yySemanticOption
* yyp
; 
1436   yybest 
= yyoptionList
; 
1438   for (yyp 
= yyoptionList
->yynext
; yyp 
!= NULL
; yyp 
= yyp
->yynext
) 
1440       if (yyidenticalOptions (yybest
, yyp
)) 
1441         yymergeOptionSets (yybest
, yyp
); 
1443         switch (yypreference (yybest
, yyp
)) 
1446             yyreportAmbiguity (yybest
, yyp
, yystack
]b4_pure_args
[); 
1462       int yyprec 
= yydprec
[yybest
->yyrule
]; 
1463       YYCHK (yyresolveAction (yybest
, yystack
, yyvalp
, yylocp
]b4_user_args
[)); 
1464       for (yyp 
= yybest
->yynext
; yyp 
!= NULL
; yyp 
= yyp
->yynext
) 
1466           if (yyprec 
== yydprec
[yyp
->yyrule
]) 
1470               YYCHK (yyresolveAction (yyp
, yystack
, &yyval1
, &yydummy
]b4_user_args
[)); 
1471               yyuserMerge (yymerger
[yyp
->yyrule
], yyvalp
, &yyval1
); 
1477     return yyresolveAction (yybest
, yystack
, yyvalp
, yylocp
]b4_user_args
[); 
1481 yyresolveStack (yyGLRStack
* yystack
]b4_user_formals
[) 
1483   if (yystack
->yysplitPoint 
!= NULL
) 
1488       for (yyn 
= 0, yys 
= yystack
->yytops
.yystates
[0]; 
1489            yys 
!= yystack
->yysplitPoint
; 
1490            yys 
= yys
->yypred
, yyn 
+= 1) 
1492       YYCHK (yyresolveStates (yystack
->yytops
.yystates
[0], yyn
, yystack
 
1499 yycompressStack (yyGLRStack
* yystack
) 
1501   yyGLRState
* yyp
, *yyq
, *yyr
; 
1503   if (yystack
->yytops
.yysize 
!= 1 || yystack
->yysplitPoint 
== NULL
) 
1506   for (yyp 
= yystack
->yytops
.yystates
[0], yyq 
= yyp
->yypred
, yyr 
= NULL
; 
1507        yyp 
!= yystack
->yysplitPoint
; 
1508        yyr 
= yyp
, yyp 
= yyq
, yyq 
= yyp
->yypred
) 
1511   yystack
->yyspaceLeft 
+= yystack
->yynextFree 
- yystack
->yyitems
; 
1512   yystack
->yynextFree 
= ((yyGLRStackItem
*) yystack
->yysplitPoint
) + 1; 
1513   yystack
->yyspaceLeft 
-= yystack
->yynextFree 
- yystack
->yyitems
; 
1514   yystack
->yysplitPoint 
= NULL
; 
1515   yystack
->yylastDeleted 
= NULL
; 
1519       yystack
->yynextFree
->yystate 
= *yyr
; 
1521       yystack
->yynextFree
->yystate
.yypred 
= & yystack
->yynextFree
[-1].yystate
; 
1522       yystack
->yytops
.yystates
[0] = &yystack
->yynextFree
->yystate
; 
1523       yystack
->yynextFree 
+= 1; 
1524       yystack
->yyspaceLeft 
-= 1; 
1529 yyprocessOneStack (yyGLRStack
* yystack
, int yyk
, 
1530                    size_t yyposn
, YYSTYPE
* yylvalp
, YYLTYPE
* yyllocp
 
1534   const short int* yyconflicts
; 
1536   yySymbol
* const yytokenp 
= yystack
->yytokenp
; 
1538   while (yystack
->yytops
.yystates
[yyk
] != NULL
) 
1540       yyStateNum yystate 
= yystack
->yytops
.yystates
[yyk
]->yylrState
; 
1541       YYDPRINTF ((stderr
, "Stack %d Entering state %d\n", yyk
, yystate
)); 
1543       YYASSERT (yystate 
!= YYFINAL
); 
1545       if (yyisDefaultedState (yystate
)) 
1547           yyrule 
= yydefaultAction (yystate
); 
1550               YYDPRINTF ((stderr
, "Stack %d dies.\n", yyk
)); 
1551               yymarkStackDeleted (yystack
, yyk
); 
1554           YYCHK (yyglrReduce (yystack
, yyk
, yyrule
, yyfalse
]b4_lpure_args
[)); 
1558           if (*yytokenp 
== YYEMPTY
) 
1560               YYDPRINTF ((stderr
, "Reading a token: ")); 
1562               *yytokenp 
= YYTRANSLATE (yychar
); 
1563               YY_SYMBOL_PRINT ("Next token is", *yytokenp
, yylvalp
, yyllocp
); 
1565           yygetLRActions (yystate
, *yytokenp
, &yyaction
, &yyconflicts
); 
1567           while (*yyconflicts 
!= 0) 
1569               int yynewStack 
= yysplitStack (yystack
, yyk
); 
1570               YYDPRINTF ((stderr
, "Splitting off stack %d from %d.\n", 
1572               YYCHK (yyglrReduce (yystack
, yynewStack
, 
1573                                   *yyconflicts
, yyfalse
]b4_lpure_args
[)); 
1574               YYCHK (yyprocessOneStack (yystack
, yynewStack
, yyposn
, 
1575                                         yylvalp
, yyllocp
]b4_user_args
[)); 
1579           if (yyisShiftAction (yyaction
)) 
1581               YYDPRINTF ((stderr
, "Shifting token %s on stack %d, ", 
1582                           yytokenName (*yytokenp
), yyk
)); 
1583               yyglrShift (yystack
, yyk
, yyaction
, yyposn
+1, 
1584                           *yylvalp
, yyllocp
]b4_user_args
[); 
1585               YYDPRINTF ((stderr
, "which is now in state #%d\n", 
1586                           yystack
->yytops
.yystates
[yyk
]->yylrState
)); 
1589           else if (yyisErrorAction (yyaction
)) 
1591               YYDPRINTF ((stderr
, "Stack %d dies.\n", yyk
)); 
1592               yymarkStackDeleted (yystack
, yyk
); 
1596             YYCHK (yyglrReduce (yystack
, yyk
, -yyaction
, yyfalse
]b4_lpure_args
[)); 
1603 yyreportSyntaxError (yyGLRStack
* yystack
, 
1604                      YYSTYPE
* yylvalp
, YYLTYPE
* yyllocp
]b4_user_formals
[) 
1606   /* `Unused' warnings. */ 
1610   if (yystack
->yyerrState 
== 0) 
1613       yySymbol
* const yytokenp 
= yystack
->yytokenp
; 
1615       yyn 
= yypact
[yystack
->yytops
.yystates
[0]->yylrState
]; 
1616       if (YYPACT_NINF 
< yyn 
&& yyn 
< YYLAST
) 
1619           const char* yyprefix
; 
1623           /* Start YYX at -YYN if negative to avoid negative indexes in 
1625           int yyxbegin 
= yyn 
< 0 ? -yyn 
: 0; 
1627           /* Stay within bounds of both yycheck and yytname.  */ 
1628           int yychecklim 
= YYLAST 
- yyn
; 
1629           int yyxend 
= yychecklim 
< YYNTOKENS 
? yychecklim 
: YYNTOKENS
; 
1632           yyprefix 
= ", expecting "; 
1633           for (yyx 
= yyxbegin
; yyx 
< yyxend
; ++yyx
) 
1634             if (yycheck
[yyx 
+ yyn
] == yyx 
&& yyx 
!= YYTERROR
) 
1636                 yysize 
+= strlen (yyprefix
) + strlen (yytokenName (yyx
)); 
1645           yysize 
+= (sizeof ("syntax error, unexpected ") 
1646                      + strlen (yytokenName (*yytokenp
))); 
1647           yymsg 
= (char*) YYMALLOC (yysize
); 
1651               sprintf (yyp
, "syntax error%s%s", 
1652                        (*yytokenp 
== YYEMPTY 
? "" : ", unexpected "), 
1653                        yytokenName (*yytokenp
)); 
1654               yyp 
+= strlen (yyp
); 
1657                   yyprefix 
= ", expecting "; 
1658                   for (yyx 
= yyxbegin
; yyx 
< yyxend
; ++yyx
) 
1659                     if (yycheck
[yyx 
+ yyn
] == yyx 
&& yyx 
!= YYTERROR
) 
1661                         sprintf (yyp
, "%s%s", yyprefix
, yytokenName (yyx
)); 
1662                         yyp 
+= strlen (yyp
); 
1666               yyerror (]b4_lyyerror_args
[yymsg
); 
1670             yyerror (]b4_lyyerror_args
["syntax error; also virtual memory exhausted"); 
1673 #endif /* YYERROR_VERBOSE */ 
1674         yyerror (]b4_lyyerror_args
["syntax error"); 
1679 /* Recover from a syntax error on YYSTACK, assuming that YYTOKENP, 
1680    YYLVALP, and YYLLOCP point to the syntactic category, semantic 
1681    value, and location of the look-ahead.  */ 
1683 yyrecoverSyntaxError (yyGLRStack
* yystack
, 
1684                       YYSTYPE
* yylvalp
, YYLTYPE
* yyllocp
]b4_user_formals
[) 
1686   yySymbol
* const yytokenp 
= yystack
->yytokenp
; 
1690   if (yystack
->yyerrState 
== 3) 
1691     /* We just shifted the error token and (perhaps) took some 
1692        reductions.  Skip tokens until we can proceed.  */ 
1695         if (*yytokenp 
== YYEOF
) 
1697             /* Now pop stack until empty and fail. */ 
1698             while (yystack
->yytops
.yystates
[0] != NULL
) 
1700                 yyGLRState 
*yys 
= yystack
->yytops
.yystates
[0]; 
1701                 YY_SYMBOL_PRINT ("Error: popping", 
1702                                  yystos
[yys
->yylrState
], 
1703                                  &yys
->yysemantics
.yysval
, &yys
->yyloc
); 
1704                 yydestruct (yystos
[yys
->yylrState
], 
1705                             &yys
->yysemantics
.yysval
]b4_location_if([, &yys
->yyloc
])[); 
1706                 yystack
->yytops
.yystates
[0] = yys
->yypred
; 
1707                 yystack
->yynextFree 
-= 1; 
1708                 yystack
->yyspaceLeft 
+= 1; 
1710             yyFail (yystack
][]b4_lpure_args
[, NULL
); 
1712         if (*yytokenp 
!= YYEMPTY
) 
1714             YY_SYMBOL_PRINT ("Error: discarding", *yytokenp
, yylvalp
, yyllocp
); 
1715             yydestruct (*yytokenp
, yylvalp
]b4_location_if([, yyllocp
])[); 
1717         YYDPRINTF ((stderr
, "Reading a token: ")); 
1719         *yytokenp 
= YYTRANSLATE (yychar
); 
1720         YY_SYMBOL_PRINT ("Next token is", *yytokenp
, yylvalp
, yyllocp
); 
1721         yyj 
= yypact
[yystack
->yytops
.yystates
[0]->yylrState
]; 
1722         if (yyis_pact_ninf (yyj
)) 
1725         if (yyj 
< 0 || YYLAST 
< yyj 
|| yycheck
[yyj
] != *yytokenp
) 
1727             if (yydefact
[yystack
->yytops
.yystates
[0]->yylrState
] != 0) 
1730         else if (yytable
[yyj
] != 0 && ! yyis_table_ninf (yytable
[yyj
])) 
1734   /* Reduce to one stack.  */ 
1735   for (yyk 
= 0; yyk 
< yystack
->yytops
.yysize
; yyk 
+= 1) 
1736     if (yystack
->yytops
.yystates
[yyk
] != NULL
) 
1738   if (yyk 
>= yystack
->yytops
.yysize
) 
1739     yyFail (yystack
][]b4_lpure_args
[, NULL
); 
1740   for (yyk 
+= 1; yyk 
< yystack
->yytops
.yysize
; yyk 
+= 1) 
1741     yymarkStackDeleted (yystack
, yyk
); 
1742   yyremoveDeletes (yystack
); 
1743   yycompressStack (yystack
); 
1745   /* Now pop stack until we find a state that shifts the error token. */ 
1746   yystack
->yyerrState 
= 3; 
1747   while (yystack
->yytops
.yystates
[0] != NULL
) 
1749       yyGLRState 
*yys 
= yystack
->yytops
.yystates
[0]; 
1750       yyj 
= yypact
[yys
->yylrState
]; 
1751       if (! yyis_pact_ninf (yyj
)) 
1754           if (0 <= yyj 
&& yyj 
<= YYLAST 
&& yycheck
[yyj
] == YYTERROR
 
1755               && yyisShiftAction (yytable
[yyj
])) 
1757               YYDPRINTF ((stderr
, "Shifting error token, ")); 
1758               yyglrShift (yystack
, 0, yytable
[yyj
], 
1759                           yys
->yyposn
, *yylvalp
, yyllocp
]b4_user_args
[); 
1763       YY_SYMBOL_PRINT ("Error: popping", 
1764                        yystos
[yys
->yylrState
], 
1765                        &yys
->yysemantics
.yysval
, &yys
->yyloc
); 
1766       yydestruct (yystos
[yys
->yylrState
], 
1767                   &yys
->yysemantics
.yysval
]b4_location_if([, &yys
->yyloc
])[); 
1768       yystack
->yytops
.yystates
[0] = yys
->yypred
; 
1769       yystack
->yynextFree 
-= 1; 
1770       yystack
->yyspaceLeft 
+= 1; 
1772   if (yystack
->yytops
.yystates
[0] == NULL
) 
1773     yyFail (yystack
][]b4_lpure_args
[, NULL
); 
1776 #define YYCHK1(YYE)                                                          \ 
1782       yystack.yyerrflag = 1;                                                 \ 
1785       yystack.yyerrflag = 0;                                                 \ 
1788       goto yyuser_error;                                                     \ 
1797 ]b4_c_ansi_function_def([yyparse
], [int], b4_parse_param
)[ 
1807   #define yychar (yystack.yyrawchar) 
1810   YYSTYPE
* const yylvalp 
= &yylval
; 
1811   YYLTYPE
* const yyllocp 
= &yylloc
; 
1813   yyinitGLRStack (&yystack
, YYINITDEPTH
); 
1814   yystack
.yytokenp 
= &yytoken
; 
1816   YYDPRINTF ((stderr
, "Starting parse\n")); 
1818   if (setjmp (yystack
.yyexception_buffer
) != 0) 
1821   yyglrShift (&yystack
, 0, 0, 0, yyval_default
, &yyloc_default
]b4_user_args
[); 
1827       /* For efficiency, we have two loops, the first of which is 
1828          specialized to deterministic operation (single stack, no 
1829          potential ambiguity).  */ 
1835           const short int* yyconflicts
; 
1837           yyStateNum yystate 
= yystack
.yytops
.yystates
[0]->yylrState
; 
1838           YYDPRINTF ((stderr
, "Entering state %d\n", yystate
)); 
1839           if (yystate 
== YYFINAL
) 
1841           if (yyisDefaultedState (yystate
)) 
1843               yyrule 
= yydefaultAction (yystate
); 
1846                   yyreportSyntaxError (&yystack
, yylvalp
, yyllocp
]b4_user_args
[); 
1849               YYCHK1 (yyglrReduce (&yystack
, 0, yyrule
, yytrue
]b4_lpure_args
[)); 
1853               if (yytoken 
== YYEMPTY
) 
1855                   YYDPRINTF ((stderr
, "Reading a token: ")); 
1857                   yytoken 
= YYTRANSLATE (yychar
); 
1858                   YY_SYMBOL_PRINT ("Next token is", yytoken
, yylvalp
, yyllocp
); 
1860               yygetLRActions (yystate
, yytoken
, &yyaction
, &yyconflicts
); 
1861               if (*yyconflicts 
!= 0) 
1863               if (yyisShiftAction (yyaction
)) 
1865                   YYDPRINTF ((stderr
, "Shifting token %s, ", 
1866                               yytokenName (yytoken
))); 
1867                   if (yytoken 
!= YYEOF
) 
1870                   yyglrShift (&yystack
, 0, yyaction
, yyposn
, 
1871                               yylval
, yyllocp
]b4_user_args
[); 
1872                   if (0 < yystack
.yyerrState
) 
1873                     yystack
.yyerrState 
-= 1; 
1875               else if (yyisErrorAction (yyaction
)) 
1877                   yyreportSyntaxError (&yystack
, yylvalp
, yyllocp
]b4_user_args
[); 
1881                 YYCHK1 (yyglrReduce (&yystack
, 0, -yyaction
, yytrue
]b4_lpure_args
[)); 
1888           int yyn 
= yystack
.yytops
.yysize
; 
1889           for (yys 
= 0; yys 
< yyn
; yys 
+= 1) 
1890             YYCHK1 (yyprocessOneStack (&yystack
, yys
, yyposn
, 
1891                                        yylvalp
, yyllocp
]b4_user_args
[)); 
1894           yyremoveDeletes (&yystack
); 
1895           if (yystack
.yytops
.yysize 
== 0) 
1897               yyundeleteLastStack (&yystack
); 
1898               if (yystack
.yytops
.yysize 
== 0) 
1899                 yyFail (&yystack
][]b4_lpure_args
[, "syntax error"); 
1900               YYCHK1 (yyresolveStack (&yystack
]b4_user_args
[)); 
1901               YYDPRINTF ((stderr
, "Returning to deterministic operation.\n")); 
1902               yyreportSyntaxError (&yystack
, yylvalp
, yyllocp
]b4_user_args
[); 
1905           else if (yystack
.yytops
.yysize 
== 1) 
1907               YYCHK1 (yyresolveStack (&yystack
]b4_user_args
[)); 
1908               YYDPRINTF ((stderr
, "Returning to deterministic operation.\n")); 
1909               yycompressStack (&yystack
); 
1915       yyrecoverSyntaxError (&yystack
, yylvalp
, yyllocp
]b4_user_args
[); 
1916       yyposn 
= yystack
.yytops
.yystates
[0]->yyposn
; 
1921   yyfreeGLRStack (&yystack
); 
1922   return yystack
.yyerrflag
; 
1925 /* DEBUGGING ONLY */ 
1927 static void yypstack (yyGLRStack
* yystack
, int yyk
) ATTRIBUTE_UNUSED
; 
1928 static void yypdumpstack (yyGLRStack
* yystack
) ATTRIBUTE_UNUSED
; 
1931 yy_yypstack (yyGLRState
* yys
) 
1935       yy_yypstack (yys
->yypred
); 
1936       fprintf (stderr
, " -> "); 
1938   fprintf (stderr
, "%d@@%lu", yys
->yylrState
, (unsigned long int) yys
->yyposn
); 
1942 yypstates (yyGLRState
* yyst
) 
1945     fprintf (stderr
, "<null>"); 
1948   fprintf (stderr
, "\n"); 
1952 yypstack (yyGLRStack
* yystack
, int yyk
) 
1954   yypstates (yystack
->yytops
.yystates
[yyk
]); 
1957 #define YYINDEX(YYX)                                                         \ 
1958     ((YYX) == NULL ? -1 : (yyGLRStackItem*) (YYX) - yystack->yyitems) 
1962 yypdumpstack (yyGLRStack
* yystack
) 
1964   yyGLRStackItem
* yyp
; 
1966   for (yyp 
= yystack
->yyitems
; yyp 
< yystack
->yynextFree
; yyp 
+= 1) 
1968       fprintf (stderr
, "%3lu. ", (unsigned long int) (yyp 
- yystack
->yyitems
)); 
1969       if (*(yybool 
*) yyp
) 
1971           fprintf (stderr
, "Res: %d, LR State: %d, posn: %lu, pred: %ld", 
1972                    yyp
->yystate
.yyresolved
, yyp
->yystate
.yylrState
, 
1973                    (unsigned long int) yyp
->yystate
.yyposn
, 
1974                    (long int) YYINDEX (yyp
->yystate
.yypred
)); 
1975           if (! yyp
->yystate
.yyresolved
) 
1976             fprintf (stderr
, ", firstVal: %ld", 
1977                      (long int) YYINDEX (yyp
->yystate
.yysemantics
.yyfirstVal
)); 
1981           fprintf (stderr
, "Option. rule: %d, state: %ld, next: %ld", 
1982                    yyp
->yyoption
.yyrule
, 
1983                    (long int) YYINDEX (yyp
->yyoption
.yystate
), 
1984                    (long int) YYINDEX (yyp
->yyoption
.yynext
)); 
1986       fprintf (stderr
, "\n"); 
1988   fprintf (stderr
, "Tops:"); 
1989   for (yyi 
= 0; yyi 
< yystack
->yytops
.yysize
; yyi 
+= 1) 
1990     fprintf (stderr
, "%lu: %ld; ", (unsigned long int) yyi
, 
1991              (long int) YYINDEX (yystack
->yytops
.yystates
[yyi
])); 
1992   fprintf (stderr
, "\n"); 
1998 m4_if(b4_defines_flag
, 0, [], 
1999 [@output @output_header_name@
 
2000 b4_copyright([Skeleton parser 
for GLR parsing with Bison
], [2002, 2003, 2004]) 
2002 b4_token_defines(b4_tokens
) 
2004 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) 
2005 m4_ifdef([b4_stype
], 
2006 [b4_syncline([b4_stype_line
], [b4_filename
]) 
2007 typedef union m4_bregexp(b4_stype
, [^{], [YYSTYPE 
])b4_stype YYSTYPE
; 
2008 /* Line __line__ of glr.c.  */ 
2009 b4_syncline([@oline@
], [@ofile@
])], 
2010 [typedef int YYSTYPE
;]) 
2011 # define YYSTYPE_IS_DECLARED 1 
2012 # define YYSTYPE_IS_TRIVIAL 1 
2016 [extern YYSTYPE b4_prefix
[]lval
;]) 
2018 #if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED) 
2019 typedef struct YYLTYPE
 
2030 # define YYLTYPE_IS_DECLARED 1 
2031 # define YYLTYPE_IS_TRIVIAL 1 
2034 b4_location_if([m4_if(b4_pure
, [0], 
2035 [extern YYLTYPE b4_prefix
[]lloc
;])