verbose ()
{
  char vflag.0;
  int nrules.1;
  long unsigned int D.4077;
  unsigned int D.4078;
  unsigned int D.4079;
  long unsigned int D.4080;
  void * null_rules.2;
  short int * null_rules.3;
  struct FILE * verbose_file.4;
  int nstates.5;
  short int nunused.6;
  int SRtotal.7;
  int RRtotal.8;
  int nvars.9;
  int ntokens.10;
  int D.4097;
  register int i;
  extern int no_space ();
  extern int print_state ();
  extern int log_unused ();
  extern int log_conflicts ();

  vflag.0 = vflag;
  if (vflag.0 == 0) goto <D.4074>; else goto <D.4075>;
  <D.4074>:
  return;
  <D.4075>:
  nrules.1 = nrules;
  D.4077 = (long unsigned int) nrules.1;
  D.4078 = (unsigned int) D.4077;
  D.4079 = D.4078 * 2;
  D.4080 = (long unsigned int) D.4079;
  null_rules.2 = malloc (D.4080);
  null_rules = null_rules.2;
  null_rules.3 = null_rules;
  if (null_rules.3 == 0B) goto <D.4083>; else goto <D.4084>;
  <D.4083>:
  no_space ();
  <D.4084>:
  verbose_file.4 = verbose_file;
  fprintf (verbose_file.4, "\f\n");
  i = 0;
  goto <D.3937>;
  <D.3936>:
  print_state (i);
  i = i + 1;
  <D.3937>:
  nstates.5 = nstates;
  if (i < nstates.5) goto <D.3936>; else goto <D.3938>;
  <D.3938>:
  null_rules.3 = null_rules;
  free (null_rules.3);
  nunused.6 = nunused;
  if (nunused.6 != 0) goto <D.4088>; else goto <D.4089>;
  <D.4088>:
  log_unused ();
  <D.4089>:
  SRtotal.7 = SRtotal;
  if (SRtotal.7 != 0) goto <D.4090>; else goto <D.4093>;
  <D.4093>:
  RRtotal.8 = RRtotal;
  if (RRtotal.8 != 0) goto <D.4090>; else goto <D.4091>;
  <D.4090>:
  log_conflicts ();
  <D.4091>:
  nvars.9 = nvars;
  ntokens.10 = ntokens;
  verbose_file.4 = verbose_file;
  fprintf (verbose_file.4, "\n\n%d terminals, %d nonterminals\n", ntokens.10, nvars.9);
  nstates.5 = nstates;
  nrules.1 = nrules;
  D.4097 = nrules.1 + -2;
  verbose_file.4 = verbose_file;
  fprintf (verbose_file.4, "%d grammar rules, %d states\n", D.4097, nstates.5);
}


fprintf (struct FILE * restrict __stream, const char * restrict __fmt)
{
  int D.4099;

  D.4099 = __fprintf_chk (__stream, 1, __fmt, __builtin_va_arg_pack ());
  return D.4099;
}


log_unused ()
{
  struct FILE * verbose_file.11;
  short int * rules_used.12;
  long unsigned int D.4103;
  long unsigned int D.4104;
  short int * D.4105;
  short int D.4106;
  char * * symbol_name.13;
  short int * rlhs.14;
  short int * D.4111;
  short int D.4112;
  long unsigned int D.4113;
  long unsigned int D.4114;
  char * * D.4115;
  char * D.4116;
  short int * ritem.15;
  short int * rrhs.16;
  short int * D.4119;
  short int D.4120;
  long unsigned int D.4121;
  long unsigned int D.4122;
  short int D.4123;
  long unsigned int D.4124;
  long unsigned int D.4125;
  char * * D.4126;
  char * D.4127;
  int D.4128;
  int nrules.17;
  register int i;
  register short int * p;

  verbose_file.11 = verbose_file;
  fprintf (verbose_file.11, "\n\nRules never reduced:\n");
  i = 3;
  goto <D.3953>;
  <D.3952>:
  rules_used.12 = rules_used;
  D.4103 = (long unsigned int) i;
  D.4104 = D.4103 * 2;
  D.4105 = rules_used.12 + D.4104;
  D.4106 = *D.4105;
  if (D.4106 == 0) goto <D.4107>; else goto <D.4108>;
  <D.4107>:
  symbol_name.13 = symbol_name;
  rlhs.14 = rlhs;
  D.4103 = (long unsigned int) i;
  D.4104 = D.4103 * 2;
  D.4111 = rlhs.14 + D.4104;
  D.4112 = *D.4111;
  D.4113 = (long unsigned int) D.4112;
  D.4114 = D.4113 * 8;
  D.4115 = symbol_name.13 + D.4114;
  D.4116 = *D.4115;
  verbose_file.11 = verbose_file;
  fprintf (verbose_file.11, "\t%s :", D.4116);
  ritem.15 = ritem;
  rrhs.16 = rrhs;
  D.4103 = (long unsigned int) i;
  D.4104 = D.4103 * 2;
  D.4119 = rrhs.16 + D.4104;
  D.4120 = *D.4119;
  D.4121 = (long unsigned int) D.4120;
  D.4122 = D.4121 * 2;
  p = ritem.15 + D.4122;
  goto <D.3950>;
  <D.3949>:
  symbol_name.13 = symbol_name;
  D.4123 = *p;
  D.4124 = (long unsigned int) D.4123;
  D.4125 = D.4124 * 8;
  D.4126 = symbol_name.13 + D.4125;
  D.4127 = *D.4126;
  verbose_file.11 = verbose_file;
  fprintf (verbose_file.11, " %s", D.4127);
  p = p + 2;
  <D.3950>:
  D.4123 = *p;
  if (D.4123 >= 0) goto <D.3949>; else goto <D.3951>;
  <D.3951>:
  D.4128 = i + -2;
  verbose_file.11 = verbose_file;
  fprintf (verbose_file.11, "  (%d)\n", D.4128);
  <D.4108>:
  i = i + 1;
  <D.3953>:
  nrules.17 = nrules;
  if (i < nrules.17) goto <D.3952>; else goto <D.3954>;
  <D.3954>:
}


log_conflicts ()
{
  struct FILE * verbose_file.18;
  short int * SRconflicts.19;
  long unsigned int D.4134;
  long unsigned int D.4135;
  short int * D.4136;
  short int D.4137;
  short int * RRconflicts.20;
  short int * D.4140;
  short int D.4141;
  int D.4147;
  int D.4157;
  int nstates.21;
  register int i;

  verbose_file.18 = verbose_file;
  fprintf (verbose_file.18, "\n\n");
  i = 0;
  goto <D.3959>;
  <D.3958>:
  SRconflicts.19 = SRconflicts;
  D.4134 = (long unsigned int) i;
  D.4135 = D.4134 * 2;
  D.4136 = SRconflicts.19 + D.4135;
  D.4137 = *D.4136;
  if (D.4137 != 0) goto <D.4131>; else goto <D.4138>;
  <D.4138>:
  RRconflicts.20 = RRconflicts;
  D.4134 = (long unsigned int) i;
  D.4135 = D.4134 * 2;
  D.4140 = RRconflicts.20 + D.4135;
  D.4141 = *D.4140;
  if (D.4141 != 0) goto <D.4131>; else goto <D.4132>;
  <D.4131>:
  verbose_file.18 = verbose_file;
  fprintf (verbose_file.18, "State %d contains ", i);
  SRconflicts.19 = SRconflicts;
  D.4134 = (long unsigned int) i;
  D.4135 = D.4134 * 2;
  D.4136 = SRconflicts.19 + D.4135;
  D.4137 = *D.4136;
  if (D.4137 == 1) goto <D.4142>; else goto <D.4143>;
  <D.4142>:
  verbose_file.18 = verbose_file;
  fprintf (verbose_file.18, "1 shift/reduce conflict");
  goto <D.4144>;
  <D.4143>:
  SRconflicts.19 = SRconflicts;
  D.4134 = (long unsigned int) i;
  D.4135 = D.4134 * 2;
  D.4136 = SRconflicts.19 + D.4135;
  D.4137 = *D.4136;
  if (D.4137 > 1) goto <D.4145>; else goto <D.4146>;
  <D.4145>:
  SRconflicts.19 = SRconflicts;
  D.4134 = (long unsigned int) i;
  D.4135 = D.4134 * 2;
  D.4136 = SRconflicts.19 + D.4135;
  D.4137 = *D.4136;
  D.4147 = (int) D.4137;
  verbose_file.18 = verbose_file;
  fprintf (verbose_file.18, "%d shift/reduce conflicts", D.4147);
  <D.4146>:
  <D.4144>:
  SRconflicts.19 = SRconflicts;
  D.4134 = (long unsigned int) i;
  D.4135 = D.4134 * 2;
  D.4136 = SRconflicts.19 + D.4135;
  D.4137 = *D.4136;
  if (D.4137 != 0) goto <D.4148>; else goto <D.4149>;
  <D.4148>:
  RRconflicts.20 = RRconflicts;
  D.4134 = (long unsigned int) i;
  D.4135 = D.4134 * 2;
  D.4140 = RRconflicts.20 + D.4135;
  D.4141 = *D.4140;
  if (D.4141 != 0) goto <D.4150>; else goto <D.4151>;
  <D.4150>:
  verbose_file.18 = verbose_file;
  fprintf (verbose_file.18, ", ");
  <D.4151>:
  <D.4149>:
  RRconflicts.20 = RRconflicts;
  D.4134 = (long unsigned int) i;
  D.4135 = D.4134 * 2;
  D.4140 = RRconflicts.20 + D.4135;
  D.4141 = *D.4140;
  if (D.4141 == 1) goto <D.4152>; else goto <D.4153>;
  <D.4152>:
  verbose_file.18 = verbose_file;
  fprintf (verbose_file.18, "1 reduce/reduce conflict");
  goto <D.4154>;
  <D.4153>:
  RRconflicts.20 = RRconflicts;
  D.4134 = (long unsigned int) i;
  D.4135 = D.4134 * 2;
  D.4140 = RRconflicts.20 + D.4135;
  D.4141 = *D.4140;
  if (D.4141 > 1) goto <D.4155>; else goto <D.4156>;
  <D.4155>:
  RRconflicts.20 = RRconflicts;
  D.4134 = (long unsigned int) i;
  D.4135 = D.4134 * 2;
  D.4140 = RRconflicts.20 + D.4135;
  D.4141 = *D.4140;
  D.4157 = (int) D.4141;
  verbose_file.18 = verbose_file;
  fprintf (verbose_file.18, "%d reduce/reduce conflicts", D.4157);
  <D.4156>:
  <D.4154>:
  verbose_file.18 = verbose_file;
  fprintf (verbose_file.18, ".\n");
  <D.4132>:
  i = i + 1;
  <D.3959>:
  nstates.21 = nstates;
  if (i < nstates.21) goto <D.3958>; else goto <D.3960>;
  <D.3960>:
}


print_state (int state)
{
  struct FILE * verbose_file.22;
  short int * SRconflicts.23;
  long unsigned int D.4165;
  long unsigned int D.4166;
  short int * D.4167;
  short int D.4168;
  short int * RRconflicts.24;
  short int * D.4171;
  short int D.4172;
  extern int print_conflicts ();
  extern int print_core ();
  extern int print_nulls ();
  extern int print_actions ();

  if (state != 0) goto <D.4159>; else goto <D.4160>;
  <D.4159>:
  verbose_file.22 = verbose_file;
  fprintf (verbose_file.22, "\n\n");
  <D.4160>:
  SRconflicts.23 = SRconflicts;
  D.4165 = (long unsigned int) state;
  D.4166 = D.4165 * 2;
  D.4167 = SRconflicts.23 + D.4166;
  D.4168 = *D.4167;
  if (D.4168 != 0) goto <D.4162>; else goto <D.4169>;
  <D.4169>:
  RRconflicts.24 = RRconflicts;
  D.4165 = (long unsigned int) state;
  D.4166 = D.4165 * 2;
  D.4171 = RRconflicts.24 + D.4166;
  D.4172 = *D.4171;
  if (D.4172 != 0) goto <D.4162>; else goto <D.4163>;
  <D.4162>:
  print_conflicts (state);
  <D.4163>:
  verbose_file.22 = verbose_file;
  fprintf (verbose_file.22, "state %d\n", state);
  print_core (state);
  print_nulls (state);
  print_actions (state);
}


print_conflicts (int state)
{
  struct action * * parser.25;
  long unsigned int D.4174;
  long unsigned int D.4175;
  struct action * * D.4176;
  char D.4177;
  short int D.4180;
  int D.4181;
  short int D.4184;
  char D.4185;
  short int final_state.26;
  int D.4195;
  int D.4198;
  int D.4199;
  struct FILE * verbose_file.27;
  char * * symbol_name.28;
  long unsigned int D.4204;
  long unsigned int D.4205;
  char * * D.4206;
  char * D.4207;
  int D.4209;
  register int symbol;
  register int act;
  register int number;
  register struct action * p;

  symbol = -1;
  parser.25 = parser;
  D.4174 = (long unsigned int) state;
  D.4175 = D.4174 * 8;
  D.4176 = parser.25 + D.4175;
  p = *D.4176;
  goto <D.3981>;
  <D.3980>:
  D.4177 = p->suppressed;
  if (D.4177 == 2) goto <D.4178>; else goto <D.4179>;
  <D.4178>:
  // predicted unlikely by continue predictor.
  goto <D.3979>;
  <D.4179>:
  D.4180 = p->symbol;
  D.4181 = (int) D.4180;
  if (D.4181 != symbol) goto <D.4182>; else goto <D.4183>;
  <D.4182>:
  D.4180 = p->symbol;
  symbol = (int) D.4180;
  D.4184 = p->number;
  number = (int) D.4184;
  D.4185 = p->action_code;
  if (D.4185 == 1) goto <D.4186>; else goto <D.4187>;
  <D.4186>:
  act = 1;
  goto <D.4188>;
  <D.4187>:
  act = 2;
  <D.4188>:
  goto <D.4189>;
  <D.4183>:
  D.4177 = p->suppressed;
  if (D.4177 == 1) goto <D.4190>; else goto <D.4191>;
  <D.4190>:
  final_state.26 = final_state;
  D.4195 = (int) final_state.26;
  if (D.4195 == state) goto <D.4196>; else goto <D.4192>;
  <D.4196>:
  if (symbol == 0) goto <D.4197>; else goto <D.4192>;
  <D.4197>:
  D.4184 = p->number;
  D.4198 = (int) D.4184;
  D.4199 = D.4198 + -2;
  verbose_file.27 = verbose_file;
  fprintf (verbose_file.27, "%d: shift/reduce conflict (accept, reduce %d) on $end\n", state, D.4199);
  goto <D.4193>;
  <D.4192>:
  if (act == 1) goto <D.4201>; else goto <D.4202>;
  <D.4201>:
  symbol_name.28 = symbol_name;
  D.4204 = (long unsigned int) symbol;
  D.4205 = D.4204 * 8;
  D.4206 = symbol_name.28 + D.4205;
  D.4207 = *D.4206;
  D.4184 = p->number;
  D.4198 = (int) D.4184;
  D.4199 = D.4198 + -2;
  verbose_file.27 = verbose_file;
  fprintf (verbose_file.27, "%d: shift/reduce conflict (shift %d, reduce %d) on %s\n", state, number, D.4199, D.4207);
  goto <D.4208>;
  <D.4202>:
  symbol_name.28 = symbol_name;
  D.4204 = (long unsigned int) symbol;
  D.4205 = D.4204 * 8;
  D.4206 = symbol_name.28 + D.4205;
  D.4207 = *D.4206;
  D.4184 = p->number;
  D.4198 = (int) D.4184;
  D.4199 = D.4198 + -2;
  D.4209 = number + -2;
  verbose_file.27 = verbose_file;
  fprintf (verbose_file.27, "%d: reduce/reduce conflict (reduce %d, reduce %d) on %s\n", state, D.4209, D.4199, D.4207);
  <D.4208>:
  <D.4193>:
  <D.4191>:
  <D.4189>:
  <D.3979>:
  p = p->next;
  <D.3981>:
  if (p != 0B) goto <D.3980>; else goto <D.3982>;
  <D.3982>:
}


print_core (int state)
{
  struct core * * state_table.29;
  long unsigned int D.4211;
  long unsigned int D.4212;
  struct core * * D.4213;
  short int D.4214;
  short int * ritem.30;
  short int D.4216;
  long unsigned int D.4217;
  long unsigned int D.4218;
  short int D.4219;
  int D.4220;
  char * * symbol_name.31;
  short int * rlhs.32;
  long unsigned int D.4223;
  long unsigned int D.4224;
  short int * D.4225;
  short int D.4226;
  long unsigned int D.4227;
  long unsigned int D.4228;
  char * * D.4229;
  char * D.4230;
  struct FILE * verbose_file.33;
  short int * rrhs.34;
  short int * D.4233;
  short int D.4234;
  long unsigned int D.4235;
  long unsigned int D.4236;
  long unsigned int D.4237;
  long unsigned int D.4238;
  char * * D.4239;
  char * D.4240;
  int D.4241;
  register int i;
  register int k;
  register int rule;
  register struct core * statep;
  register short int * sp;
  register short int * sp1;

  state_table.29 = state_table;
  D.4211 = (long unsigned int) state;
  D.4212 = D.4211 * 8;
  D.4213 = state_table.29 + D.4212;
  statep = *D.4213;
  D.4214 = statep->nitems;
  k = (int) D.4214;
  i = 0;
  goto <D.4002>;
  <D.4001>:
  ritem.30 = ritem;
  D.4216 = statep->items[i];
  D.4217 = (long unsigned int) D.4216;
  D.4218 = D.4217 * 2;
  sp = ritem.30 + D.4218;
  sp1 = sp;
  goto <D.3993>;
  <D.3992>:
  sp = sp + 2;
  <D.3993>:
  D.4219 = *sp;
  if (D.4219 >= 0) goto <D.3992>; else goto <D.3994>;
  <D.3994>:
  D.4219 = *sp;
  D.4220 = (int) D.4219;
  rule = -D.4220;
  symbol_name.31 = symbol_name;
  rlhs.32 = rlhs;
  D.4223 = (long unsigned int) rule;
  D.4224 = D.4223 * 2;
  D.4225 = rlhs.32 + D.4224;
  D.4226 = *D.4225;
  D.4227 = (long unsigned int) D.4226;
  D.4228 = D.4227 * 8;
  D.4229 = symbol_name.31 + D.4228;
  D.4230 = *D.4229;
  verbose_file.33 = verbose_file;
  fprintf (verbose_file.33, "\t%s : ", D.4230);
  ritem.30 = ritem;
  rrhs.34 = rrhs;
  D.4223 = (long unsigned int) rule;
  D.4224 = D.4223 * 2;
  D.4233 = rrhs.34 + D.4224;
  D.4234 = *D.4233;
  D.4235 = (long unsigned int) D.4234;
  D.4236 = D.4235 * 2;
  sp = ritem.30 + D.4236;
  goto <D.3996>;
  <D.3995>:
  symbol_name.31 = symbol_name;
  D.4219 = *sp;
  D.4237 = (long unsigned int) D.4219;
  D.4238 = D.4237 * 8;
  D.4239 = symbol_name.31 + D.4238;
  D.4240 = *D.4239;
  verbose_file.33 = verbose_file;
  fprintf (verbose_file.33, "%s ", D.4240);
  sp = sp + 2;
  <D.3996>:
  if (sp < sp1) goto <D.3995>; else goto <D.3997>;
  <D.3997>:
  verbose_file.33 = verbose_file;
  _IO_putc (46, verbose_file.33);
  goto <D.3999>;
  <D.3998>:
  symbol_name.31 = symbol_name;
  D.4219 = *sp;
  D.4237 = (long unsigned int) D.4219;
  D.4238 = D.4237 * 8;
  D.4239 = symbol_name.31 + D.4238;
  D.4240 = *D.4239;
  verbose_file.33 = verbose_file;
  fprintf (verbose_file.33, " %s", D.4240);
  sp = sp + 2;
  <D.3999>:
  D.4219 = *sp;
  if (D.4219 >= 0) goto <D.3998>; else goto <D.4000>;
  <D.4000>:
  D.4219 = *sp;
  D.4220 = (int) D.4219;
  D.4241 = -2 - D.4220;
  verbose_file.33 = verbose_file;
  fprintf (verbose_file.33, "  (%d)\n", D.4241);
  i = i + 1;
  <D.4002>:
  if (i < k) goto <D.4001>; else goto <D.4003>;
  <D.4003>:
}


print_nulls (int state)
{
  struct action * * parser.35;
  long unsigned int D.4243;
  long unsigned int D.4244;
  struct action * * D.4245;
  char D.4246;
  char D.4249;
  unsigned char D.4250;
  short int D.4253;
  short int * rrhs.36;
  long unsigned int D.4255;
  long unsigned int D.4256;
  short int * D.4257;
  short int D.4258;
  int D.4259;
  int D.4260;
  sizetype D.4261;
  sizetype D.4262;
  sizetype D.4263;
  short int * D.4264;
  short int D.4265;
  int D.4266;
  short int * null_rules.37;
  long unsigned int D.4271;
  long unsigned int D.4272;
  short int * D.4273;
  short int D.4274;
  int D.4275;
  short int D.4278;
  long unsigned int D.4282;
  long unsigned int D.4283;
  short int * D.4284;
  sizetype D.4285;
  short int * D.4286;
  short int D.4287;
  short int * D.4288;
  short int D.4289;
  int D.4290;
  char * * symbol_name.38;
  short int * rlhs.39;
  short int * D.4293;
  short int D.4294;
  long unsigned int D.4295;
  long unsigned int D.4296;
  char * * D.4297;
  char * D.4298;
  struct FILE * verbose_file.40;
  register struct action * p;
  register int i;
  register int j;
  register int k;
  register int nnulls;

  nnulls = 0;
  parser.35 = parser;
  D.4243 = (long unsigned int) state;
  D.4244 = D.4243 * 8;
  D.4245 = parser.35 + D.4244;
  p = *D.4245;
  goto <D.4020>;
  <D.4019>:
  D.4246 = p->action_code;
  if (D.4246 == 2) goto <D.4247>; else goto <D.4248>;
  <D.4247>:
  D.4249 = p->suppressed;
  D.4250 = (unsigned char) D.4249;
  if (D.4250 <= 1) goto <D.4251>; else goto <D.4252>;
  <D.4251>:
  D.4253 = p->number;
  i = (int) D.4253;
  rrhs.36 = rrhs;
  D.4255 = (long unsigned int) i;
  D.4256 = D.4255 * 2;
  D.4257 = rrhs.36 + D.4256;
  D.4258 = *D.4257;
  D.4259 = (int) D.4258;
  D.4260 = D.4259 + 1;
  rrhs.36 = rrhs;
  D.4261 = (sizetype) i;
  D.4262 = D.4261 + 1;
  D.4263 = D.4262 * 2;
  D.4264 = rrhs.36 + D.4263;
  D.4265 = *D.4264;
  D.4266 = (int) D.4265;
  if (D.4260 == D.4266) goto <D.4267>; else goto <D.4268>;
  <D.4267>:
  j = 0;
  goto <D.4014>;
  <D.4013>:
  // predicted unlikely by continue predictor.
  goto <D.4012>;
  <D.4012>:
  j = j + 1;
  <D.4014>:
  if (j < nnulls) goto <D.4269>; else goto <D.4015>;
  <D.4269>:
  null_rules.37 = null_rules;
  D.4271 = (long unsigned int) j;
  D.4272 = D.4271 * 2;
  D.4273 = null_rules.37 + D.4272;
  D.4274 = *D.4273;
  D.4275 = (int) D.4274;
  if (D.4275 < i) goto <D.4013>; else goto <D.4015>;
  <D.4015>:
  if (j == nnulls) goto <D.4276>; else goto <D.4277>;
  <D.4276>:
  nnulls = nnulls + 1;
  null_rules.37 = null_rules;
  D.4271 = (long unsigned int) j;
  D.4272 = D.4271 * 2;
  D.4273 = null_rules.37 + D.4272;
  D.4278 = (short int) i;
  *D.4273 = D.4278;
  goto <D.4279>;
  <D.4277>:
  null_rules.37 = null_rules;
  D.4271 = (long unsigned int) j;
  D.4272 = D.4271 * 2;
  D.4273 = null_rules.37 + D.4272;
  D.4274 = *D.4273;
  D.4275 = (int) D.4274;
  if (D.4275 != i) goto <D.4280>; else goto <D.4281>;
  <D.4280>:
  nnulls = nnulls + 1;
  k = nnulls + -1;
  goto <D.4017>;
  <D.4016>:
  null_rules.37 = null_rules;
  D.4282 = (long unsigned int) k;
  D.4283 = D.4282 * 2;
  D.4284 = null_rules.37 + D.4283;
  null_rules.37 = null_rules;
  D.4282 = (long unsigned int) k;
  D.4283 = D.4282 * 2;
  D.4285 = D.4283 + 18446744073709551614;
  D.4286 = null_rules.37 + D.4285;
  D.4287 = *D.4286;
  *D.4284 = D.4287;
  k = k + -1;
  <D.4017>:
  if (k > j) goto <D.4016>; else goto <D.4018>;
  <D.4018>:
  null_rules.37 = null_rules;
  D.4271 = (long unsigned int) j;
  D.4272 = D.4271 * 2;
  D.4273 = null_rules.37 + D.4272;
  D.4278 = (short int) i;
  *D.4273 = D.4278;
  <D.4281>:
  <D.4279>:
  <D.4268>:
  <D.4252>:
  <D.4248>:
  p = p->next;
  <D.4020>:
  if (p != 0B) goto <D.4019>; else goto <D.4021>;
  <D.4021>:
  i = 0;
  goto <D.4023>;
  <D.4022>:
  null_rules.37 = null_rules;
  D.4255 = (long unsigned int) i;
  D.4256 = D.4255 * 2;
  D.4288 = null_rules.37 + D.4256;
  D.4289 = *D.4288;
  j = (int) D.4289;
  D.4290 = j + -2;
  symbol_name.38 = symbol_name;
  rlhs.39 = rlhs;
  D.4271 = (long unsigned int) j;
  D.4272 = D.4271 * 2;
  D.4293 = rlhs.39 + D.4272;
  D.4294 = *D.4293;
  D.4295 = (long unsigned int) D.4294;
  D.4296 = D.4295 * 8;
  D.4297 = symbol_name.38 + D.4296;
  D.4298 = *D.4297;
  verbose_file.40 = verbose_file;
  fprintf (verbose_file.40, "\t%s : .  (%d)\n", D.4298, D.4290);
  i = i + 1;
  <D.4023>:
  if (i < nnulls) goto <D.4022>; else goto <D.4024>;
  <D.4024>:
  verbose_file.40 = verbose_file;
  fprintf (verbose_file.40, "\n");
}


print_actions (int stateno)
{
  short int final_state.41;
  int D.4301;
  struct FILE * verbose_file.42;
  struct action * * parser.43;
  long unsigned int D.4306;
  long unsigned int D.4307;
  struct action * * D.4308;
  short int * defred.44;
  long unsigned int D.4312;
  short int * D.4313;
  short int D.4314;
  int D.4315;
  struct shifts * * shift_table.45;
  struct shifts * * D.4317;
  short int D.4320;
  short int * accessing_symbol.46;
  int D.4324;
  int D.4325;
  short int D.4326;
  long unsigned int D.4327;
  long unsigned int D.4328;
  short int * D.4329;
  short int D.4330;
  int start_symbol.47;
  register struct action * p;
  register struct shifts * sp;
  register int as;

  final_state.41 = final_state;
  D.4301 = (int) final_state.41;
  if (D.4301 == stateno) goto <D.4302>; else goto <D.4303>;
  <D.4302>:
  verbose_file.42 = verbose_file;
  fprintf (verbose_file.42, "\t$end  accept\n");
  <D.4303>:
  parser.43 = parser;
  D.4306 = (long unsigned int) stateno;
  D.4307 = D.4306 * 8;
  D.4308 = parser.43 + D.4307;
  p = *D.4308;
  if (p != 0B) goto <D.4309>; else goto <D.4310>;
  <D.4309>:
  {
    extern int print_shifts ();
    extern int print_reductions ();

    print_shifts (p);
    defred.44 = defred;
    D.4306 = (long unsigned int) stateno;
    D.4312 = D.4306 * 2;
    D.4313 = defred.44 + D.4312;
    D.4314 = *D.4313;
    D.4315 = (int) D.4314;
    print_reductions (p, D.4315);
  }
  <D.4310>:
  shift_table.45 = shift_table;
  D.4306 = (long unsigned int) stateno;
  D.4307 = D.4306 * 8;
  D.4317 = shift_table.45 + D.4307;
  sp = *D.4317;
  if (sp != 0B) goto <D.4318>; else goto <D.4319>;
  <D.4318>:
  D.4320 = sp->nshifts;
  if (D.4320 > 0) goto <D.4321>; else goto <D.4322>;
  <D.4321>:
  {
    extern int print_gotos ();

    accessing_symbol.46 = accessing_symbol;
    D.4320 = sp->nshifts;
    D.4324 = (int) D.4320;
    D.4325 = D.4324 + -1;
    D.4326 = sp->shift[D.4325];
    D.4327 = (long unsigned int) D.4326;
    D.4328 = D.4327 * 2;
    D.4329 = accessing_symbol.46 + D.4328;
    D.4330 = *D.4329;
    as = (int) D.4330;
    start_symbol.47 = start_symbol;
    if (as >= start_symbol.47) goto <D.4332>; else goto <D.4333>;
    <D.4332>:
    print_gotos (stateno);
    <D.4333>:
  }
  <D.4322>:
  <D.4319>:
}


print_shifts (struct action * p)
{
  char D.4334;
  char D.4337;
  char D.4342;
  char D.4345;
  short int D.4348;
  int D.4349;
  char * * symbol_name.48;
  short int D.4351;
  long unsigned int D.4352;
  long unsigned int D.4353;
  char * * D.4354;
  char * D.4355;
  struct FILE * verbose_file.49;
  register int count;
  register struct action * q;

  count = 0;
  q = p;
  goto <D.4043>;
  <D.4042>:
  D.4334 = q->suppressed;
  if (D.4334 <= 1) goto <D.4335>; else goto <D.4336>;
  <D.4335>:
  D.4337 = q->action_code;
  if (D.4337 == 1) goto <D.4338>; else goto <D.4339>;
  <D.4338>:
  count = count + 1;
  <D.4339>:
  <D.4336>:
  q = q->next;
  <D.4043>:
  if (q != 0B) goto <D.4042>; else goto <D.4044>;
  <D.4044>:
  if (count > 0) goto <D.4340>; else goto <D.4341>;
  <D.4340>:
  goto <D.4046>;
  <D.4045>:
  D.4342 = p->action_code;
  if (D.4342 == 1) goto <D.4343>; else goto <D.4344>;
  <D.4343>:
  D.4345 = p->suppressed;
  if (D.4345 == 0) goto <D.4346>; else goto <D.4347>;
  <D.4346>:
  D.4348 = p->number;
  D.4349 = (int) D.4348;
  symbol_name.48 = symbol_name;
  D.4351 = p->symbol;
  D.4352 = (long unsigned int) D.4351;
  D.4353 = D.4352 * 8;
  D.4354 = symbol_name.48 + D.4353;
  D.4355 = *D.4354;
  verbose_file.49 = verbose_file;
  fprintf (verbose_file.49, "\t%s  shift %d\n", D.4355, D.4349);
  <D.4347>:
  <D.4344>:
  p = p->next;
  <D.4046>:
  if (p != 0B) goto <D.4045>; else goto <D.4047>;
  <D.4047>:
  <D.4341>:
}


print_reductions (struct action * p, int defred)
{
  char D.4357;
  char D.4360;
  struct FILE * verbose_file.50;
  char D.4367;
  short int D.4370;
  int D.4371;
  char D.4374;
  char * * symbol_name.51;
  short int D.4378;
  long unsigned int D.4379;
  long unsigned int D.4380;
  char * * D.4381;
  char * D.4382;
  int D.4385;
  register int k;
  register int anyreds;
  register struct action * q;

  anyreds = 0;
  q = p;
  goto <D.4057>;
  <D.4056>:
  D.4357 = q->action_code;
  if (D.4357 == 2) goto <D.4358>; else goto <D.4359>;
  <D.4358>:
  D.4360 = q->suppressed;
  if (D.4360 <= 1) goto <D.4361>; else goto <D.4362>;
  <D.4361>:
  anyreds = 1;
  goto <D.4055>;
  <D.4362>:
  <D.4359>:
  q = q->next;
  <D.4057>:
  if (q != 0B) goto <D.4056>; else goto <D.4055>;
  <D.4055>:
  if (anyreds == 0) goto <D.4363>; else goto <D.4364>;
  <D.4363>:
  verbose_file.50 = verbose_file;
  fprintf (verbose_file.50, "\t.  error\n");
  goto <D.4366>;
  <D.4364>:
  goto <D.4059>;
  <D.4058>:
  D.4367 = p->action_code;
  if (D.4367 == 2) goto <D.4368>; else goto <D.4369>;
  <D.4368>:
  D.4370 = p->number;
  D.4371 = (int) D.4370;
  if (D.4371 != defred) goto <D.4372>; else goto <D.4373>;
  <D.4372>:
  D.4370 = p->number;
  D.4371 = (int) D.4370;
  k = D.4371 + -2;
  D.4374 = p->suppressed;
  if (D.4374 == 0) goto <D.4375>; else goto <D.4376>;
  <D.4375>:
  symbol_name.51 = symbol_name;
  D.4378 = p->symbol;
  D.4379 = (long unsigned int) D.4378;
  D.4380 = D.4379 * 8;
  D.4381 = symbol_name.51 + D.4380;
  D.4382 = *D.4381;
  verbose_file.50 = verbose_file;
  fprintf (verbose_file.50, "\t%s  reduce %d\n", D.4382, k);
  <D.4376>:
  <D.4373>:
  <D.4369>:
  p = p->next;
  <D.4059>:
  if (p != 0B) goto <D.4058>; else goto <D.4060>;
  <D.4060>:
  if (defred > 0) goto <D.4383>; else goto <D.4384>;
  <D.4383>:
  D.4385 = defred + -2;
  verbose_file.50 = verbose_file;
  fprintf (verbose_file.50, "\t.  reduce %d\n", D.4385);
  <D.4384>:
  <D.4366>:
}


print_gotos (int stateno)
{
  struct FILE * verbose_file.52;
  struct shifts * * shift_table.53;
  long unsigned int D.4388;
  long unsigned int D.4389;
  struct shifts * * D.4390;
  long unsigned int D.4391;
  long unsigned int D.4392;
  short int * D.4393;
  short int D.4394;
  short int * accessing_symbol.54;
  long unsigned int D.4396;
  long unsigned int D.4397;
  short int * D.4398;
  short int D.4399;
  int start_symbol.55;
  char * * symbol_name.56;
  long unsigned int D.4404;
  long unsigned int D.4405;
  char * * D.4406;
  char * D.4407;
  short int D.4408;
  int D.4409;
  register int i;
  register int k;
  register int as;
  register short int * to_state;
  register struct shifts * sp;

  verbose_file.52 = verbose_file;
  _IO_putc (10, verbose_file.52);
  shift_table.53 = shift_table;
  D.4388 = (long unsigned int) stateno;
  D.4389 = D.4388 * 8;
  D.4390 = shift_table.53 + D.4389;
  sp = *D.4390;
  to_state = &sp->shift;
  i = 0;
  goto <D.4070>;
  <D.4069>:
  D.4391 = (long unsigned int) i;
  D.4392 = D.4391 * 2;
  D.4393 = to_state + D.4392;
  D.4394 = *D.4393;
  k = (int) D.4394;
  accessing_symbol.54 = accessing_symbol;
  D.4396 = (long unsigned int) k;
  D.4397 = D.4396 * 2;
  D.4398 = accessing_symbol.54 + D.4397;
  D.4399 = *D.4398;
  as = (int) D.4399;
  start_symbol.55 = start_symbol;
  if (as >= start_symbol.55) goto <D.4401>; else goto <D.4402>;
  <D.4401>:
  symbol_name.56 = symbol_name;
  D.4404 = (long unsigned int) as;
  D.4405 = D.4404 * 8;
  D.4406 = symbol_name.56 + D.4405;
  D.4407 = *D.4406;
  verbose_file.52 = verbose_file;
  fprintf (verbose_file.52, "\t%s  goto %d\n", D.4407, k);
  <D.4402>:
  i = i + 1;
  <D.4070>:
  D.4408 = sp->nshifts;
  D.4409 = (int) D.4408;
  if (D.4409 > i) goto <D.4069>; else goto <D.4071>;
  <D.4071>:
}


