output ()
{
  long unsigned int D.4402;
  long unsigned int D.4403;
  char D.4404;
  struct _IO_FILE * stderr.0;
  char D.4408;
  int D.4409;
  char tflag.1;
  struct _IO_FILE * stdout.2;
  int D.3969;
  int iftmp.3;
  int D.3968;
  const char[8] * D.4419;
  unsigned char D.4420;
  int D.4421;
  unsigned char D.4422;
  int D.4423;
  _Bool D.4424;
  _Bool D.4425;
  _Bool D.4426;
  const unsigned char * D.4429;
  unsigned char D.4430;
  int D.4431;
  const unsigned char * D.4432;
  unsigned char D.4433;
  int D.4434;
  _Bool D.4435;
  _Bool D.4436;
  const unsigned char * D.4439;
  unsigned char D.4440;
  int D.4441;
  const unsigned char * D.4442;
  unsigned char D.4443;
  int D.4444;
  _Bool D.4445;
  _Bool D.4446;
  const unsigned char * D.4449;
  unsigned char D.4450;
  int D.4451;
  const unsigned char * D.4452;
  unsigned char D.4453;
  int D.4454;
  int D.3979;
  int iftmp.4;
  int D.3978;
  const char[6] * D.4462;
  unsigned char D.4463;
  int D.4464;
  unsigned char D.4465;
  int D.4466;
  _Bool D.4467;
  _Bool D.4468;
  _Bool D.4469;
  const unsigned char * D.4472;
  unsigned char D.4473;
  int D.4474;
  const unsigned char * D.4475;
  unsigned char D.4476;
  int D.4477;
  _Bool D.4478;
  _Bool D.4479;
  const unsigned char * D.4482;
  unsigned char D.4483;
  int D.4484;
  const unsigned char * D.4485;
  unsigned char D.4486;
  int D.4487;
  _Bool D.4488;
  _Bool D.4489;
  const unsigned char * D.4492;
  unsigned char D.4493;
  int D.4494;
  const unsigned char * D.4495;
  unsigned char D.4496;
  int D.4497;
  int D.3989;
  int iftmp.5;
  int D.3988;
  const char[7] * D.4505;
  unsigned char D.4506;
  int D.4507;
  unsigned char D.4508;
  int D.4509;
  _Bool D.4510;
  _Bool D.4511;
  _Bool D.4512;
  const unsigned char * D.4515;
  unsigned char D.4516;
  int D.4517;
  const unsigned char * D.4518;
  unsigned char D.4519;
  int D.4520;
  _Bool D.4521;
  _Bool D.4522;
  const unsigned char * D.4525;
  unsigned char D.4526;
  int D.4527;
  const unsigned char * D.4528;
  unsigned char D.4529;
  int D.4530;
  _Bool D.4531;
  _Bool D.4532;
  const unsigned char * D.4535;
  unsigned char D.4536;
  int D.4537;
  const unsigned char * D.4538;
  unsigned char D.4539;
  int D.4540;
  int D.3999;
  int iftmp.6;
  int D.3998;
  const char[7] * D.4548;
  unsigned char D.4549;
  int D.4550;
  unsigned char D.4551;
  int D.4552;
  _Bool D.4553;
  _Bool D.4554;
  _Bool D.4555;
  const unsigned char * D.4558;
  unsigned char D.4559;
  int D.4560;
  const unsigned char * D.4561;
  unsigned char D.4562;
  int D.4563;
  _Bool D.4564;
  _Bool D.4565;
  const unsigned char * D.4568;
  unsigned char D.4569;
  int D.4570;
  const unsigned char * D.4571;
  unsigned char D.4572;
  int D.4573;
  _Bool D.4574;
  _Bool D.4575;
  const unsigned char * D.4578;
  unsigned char D.4579;
  int D.4580;
  const unsigned char * D.4581;
  unsigned char D.4582;
  int D.4583;
  char * prolog_file_name.7;
  struct FILE * prolog_file.8;
  int D.4009;
  int iftmp.9;
  int D.4008;
  const char[6] * D.4593;
  unsigned char D.4594;
  int D.4595;
  unsigned char D.4596;
  int D.4597;
  _Bool D.4598;
  _Bool D.4599;
  _Bool D.4600;
  const unsigned char * D.4603;
  unsigned char D.4604;
  int D.4605;
  const unsigned char * D.4606;
  unsigned char D.4607;
  int D.4608;
  _Bool D.4609;
  _Bool D.4610;
  const unsigned char * D.4613;
  unsigned char D.4614;
  int D.4615;
  const unsigned char * D.4616;
  unsigned char D.4617;
  int D.4618;
  _Bool D.4619;
  _Bool D.4620;
  const unsigned char * D.4623;
  unsigned char D.4624;
  int D.4625;
  const unsigned char * D.4626;
  unsigned char D.4627;
  int D.4628;
  char * local_file_name.10;
  struct FILE * local_file.11;
  int D.4018;
  int iftmp.12;
  int D.4017;
  const char[7] * D.4638;
  unsigned char D.4639;
  int D.4640;
  unsigned char D.4641;
  int D.4642;
  _Bool D.4643;
  _Bool D.4644;
  _Bool D.4645;
  const unsigned char * D.4648;
  unsigned char D.4649;
  int D.4650;
  const unsigned char * D.4651;
  unsigned char D.4652;
  int D.4653;
  _Bool D.4654;
  _Bool D.4655;
  const unsigned char * D.4658;
  unsigned char D.4659;
  int D.4660;
  const unsigned char * D.4661;
  unsigned char D.4662;
  int D.4663;
  _Bool D.4664;
  _Bool D.4665;
  const unsigned char * D.4668;
  unsigned char D.4669;
  int D.4670;
  const unsigned char * D.4671;
  unsigned char D.4672;
  int D.4673;
  int D.4030;
  int iftmp.13;
  int D.4029;
  const char[7] * D.4681;
  unsigned char D.4682;
  int D.4683;
  unsigned char D.4684;
  int D.4685;
  _Bool D.4686;
  _Bool D.4687;
  _Bool D.4688;
  const unsigned char * D.4691;
  unsigned char D.4692;
  int D.4693;
  const unsigned char * D.4694;
  unsigned char D.4695;
  int D.4696;
  _Bool D.4697;
  _Bool D.4698;
  const unsigned char * D.4701;
  unsigned char D.4702;
  int D.4703;
  const unsigned char * D.4704;
  unsigned char D.4705;
  int D.4706;
  _Bool D.4707;
  _Bool D.4708;
  const unsigned char * D.4711;
  unsigned char D.4712;
  int D.4713;
  const unsigned char * D.4714;
  unsigned char D.4715;
  int D.4716;
  char * D.4720;
  int outline.14;
  int outline.15;
  struct _IO_FILE * stdin.16;
  char * D.4725;
  int lno;
  char buf[128];
  extern int free_itemsets ();
  extern int free_shifts ();
  extern int free_reductions ();
  extern int free_parser ();

  try
    {
      lno = 0;
      free_itemsets ();
      free_shifts ();
      free_reductions ();
      goto <D.3956>;
      <D.4041>:
      {
        char * cp;
        extern int done ();

        lno = lno + 1;
        D.4402 = strlen (&buf);
        D.4403 = D.4402 + 18446744073709551615;
        D.4404 = buf[D.4403];
        if (D.4404 != 10) goto <D.4405>; else goto <D.4406>;
        <D.4405>:
        stderr.0 = stderr;
        fprintf (stderr.0, "jay: line %d is too long\n", lno);
        done (1);
        <D.4406>:
        D.4408 = buf[0];
        D.4409 = (int) D.4408;
        switch (D.4409) <default: <D.3960>, case 35: <D.3955>, case 46: <D.3958>, case 116: <D.3957>>
        {
          extern int output_semantic_actions ();
          extern int output_debug ();
          extern int output_trailing_text ();
          extern int output_stored_text ();
          extern int output_rule_data ();
          extern int output_yydefred ();
          extern int output_actions ();
          extern int output_defines ();

          <D.3955>:
          // predicted unlikely by continue predictor.
          goto <D.3956>;
          <D.3957>:
          tflag.1 = tflag;
          if (tflag.1 == 0) goto <D.4411>; else goto <D.4412>;
          <D.4411>:
          stdout.2 = stdout;
          __builtin_fwrite ("//t", 1, 3, stdout.2);
          <D.4412>:
          <D.3958>:
          goto <D.3959>;
          <D.3960>:
          cp = strtok (&buf, " \t\r\n");
          if (cp != 0B) goto <D.4414>; else goto <D.4415>;
          <D.4414>:
          {
            size_t __s1_len;
            size_t __s2_len;

            __s2_len = 7;
            if (__s2_len <= 3) goto <D.4417>; else goto <D.4418>;
            <D.4417>:
            {
              const unsigned char * __s2;
              int __result;

              __s2 = cp;
              D.4419 = "actions";
              D.4420 = MEM[(const unsigned char *)D.4419];
              D.4421 = (int) D.4420;
              D.4422 = *__s2;
              D.4423 = (int) D.4422;
              __result = D.4421 - D.4423;
              {
                D.4424 = __s2_len != 0;
                D.4425 = __result == 0;
                D.4426 = D.4424 & D.4425;
                if (D.4426 != 0) goto <D.4427>; else goto <D.4428>;
                <D.4427>:
                D.4429 = &MEM[(void *)"actions" + 1B];
                D.4430 = *D.4429;
                D.4431 = (int) D.4430;
                D.4432 = __s2 + 1;
                D.4433 = *D.4432;
                D.4434 = (int) D.4433;
                __result = D.4431 - D.4434;
                D.4435 = __s2_len > 1;
                D.4425 = __result == 0;
                D.4436 = D.4435 & D.4425;
                if (D.4436 != 0) goto <D.4437>; else goto <D.4438>;
                <D.4437>:
                D.4439 = &MEM[(void *)"actions" + 2B];
                D.4440 = *D.4439;
                D.4441 = (int) D.4440;
                D.4442 = __s2 + 2;
                D.4443 = *D.4442;
                D.4444 = (int) D.4443;
                __result = D.4441 - D.4444;
                D.4445 = __s2_len > 2;
                D.4425 = __result == 0;
                D.4446 = D.4445 & D.4425;
                if (D.4446 != 0) goto <D.4447>; else goto <D.4448>;
                <D.4447>:
                D.4449 = &MEM[(void *)"actions" + 3B];
                D.4450 = *D.4449;
                D.4451 = (int) D.4450;
                D.4452 = __s2 + 3;
                D.4453 = *D.4452;
                D.4454 = (int) D.4453;
                __result = D.4451 - D.4454;
                <D.4448>:
                <D.4438>:
                <D.4428>:
              }
              D.3968 = __result;
            }
            iftmp.3 = -D.3968;
            goto <D.4455>;
            <D.4418>:
            iftmp.3 = __builtin_strcmp (cp, "actions");
            <D.4455>:
            D.3969 = iftmp.3;
          }
          if (D.3969 == 0) goto <D.4456>; else goto <D.4457>;
          <D.4456>:
          output_semantic_actions ();
          goto <D.4458>;
          <D.4457>:
          {
            size_t __s1_len;
            size_t __s2_len;

            __s2_len = 5;
            if (__s2_len <= 3) goto <D.4460>; else goto <D.4461>;
            <D.4460>:
            {
              const unsigned char * __s2;
              int __result;

              __s2 = cp;
              D.4462 = "debug";
              D.4463 = MEM[(const unsigned char *)D.4462];
              D.4464 = (int) D.4463;
              D.4465 = *__s2;
              D.4466 = (int) D.4465;
              __result = D.4464 - D.4466;
              {
                D.4467 = __s2_len != 0;
                D.4468 = __result == 0;
                D.4469 = D.4467 & D.4468;
                if (D.4469 != 0) goto <D.4470>; else goto <D.4471>;
                <D.4470>:
                D.4472 = &MEM[(void *)"debug" + 1B];
                D.4473 = *D.4472;
                D.4474 = (int) D.4473;
                D.4475 = __s2 + 1;
                D.4476 = *D.4475;
                D.4477 = (int) D.4476;
                __result = D.4474 - D.4477;
                D.4478 = __s2_len > 1;
                D.4468 = __result == 0;
                D.4479 = D.4478 & D.4468;
                if (D.4479 != 0) goto <D.4480>; else goto <D.4481>;
                <D.4480>:
                D.4482 = &MEM[(void *)"debug" + 2B];
                D.4483 = *D.4482;
                D.4484 = (int) D.4483;
                D.4485 = __s2 + 2;
                D.4486 = *D.4485;
                D.4487 = (int) D.4486;
                __result = D.4484 - D.4487;
                D.4488 = __s2_len > 2;
                D.4468 = __result == 0;
                D.4489 = D.4488 & D.4468;
                if (D.4489 != 0) goto <D.4490>; else goto <D.4491>;
                <D.4490>:
                D.4492 = &MEM[(void *)"debug" + 3B];
                D.4493 = *D.4492;
                D.4494 = (int) D.4493;
                D.4495 = __s2 + 3;
                D.4496 = *D.4495;
                D.4497 = (int) D.4496;
                __result = D.4494 - D.4497;
                <D.4491>:
                <D.4481>:
                <D.4471>:
              }
              D.3978 = __result;
            }
            iftmp.4 = -D.3978;
            goto <D.4498>;
            <D.4461>:
            iftmp.4 = __builtin_strcmp (cp, "debug");
            <D.4498>:
            D.3979 = iftmp.4;
          }
          if (D.3979 == 0) goto <D.4499>; else goto <D.4500>;
          <D.4499>:
          output_debug ();
          goto <D.4501>;
          <D.4500>:
          {
            size_t __s1_len;
            size_t __s2_len;

            __s2_len = 6;
            if (__s2_len <= 3) goto <D.4503>; else goto <D.4504>;
            <D.4503>:
            {
              const unsigned char * __s2;
              int __result;

              __s2 = cp;
              D.4505 = "epilog";
              D.4506 = MEM[(const unsigned char *)D.4505];
              D.4507 = (int) D.4506;
              D.4508 = *__s2;
              D.4509 = (int) D.4508;
              __result = D.4507 - D.4509;
              {
                D.4510 = __s2_len != 0;
                D.4511 = __result == 0;
                D.4512 = D.4510 & D.4511;
                if (D.4512 != 0) goto <D.4513>; else goto <D.4514>;
                <D.4513>:
                D.4515 = &MEM[(void *)"epilog" + 1B];
                D.4516 = *D.4515;
                D.4517 = (int) D.4516;
                D.4518 = __s2 + 1;
                D.4519 = *D.4518;
                D.4520 = (int) D.4519;
                __result = D.4517 - D.4520;
                D.4521 = __s2_len > 1;
                D.4511 = __result == 0;
                D.4522 = D.4521 & D.4511;
                if (D.4522 != 0) goto <D.4523>; else goto <D.4524>;
                <D.4523>:
                D.4525 = &MEM[(void *)"epilog" + 2B];
                D.4526 = *D.4525;
                D.4527 = (int) D.4526;
                D.4528 = __s2 + 2;
                D.4529 = *D.4528;
                D.4530 = (int) D.4529;
                __result = D.4527 - D.4530;
                D.4531 = __s2_len > 2;
                D.4511 = __result == 0;
                D.4532 = D.4531 & D.4511;
                if (D.4532 != 0) goto <D.4533>; else goto <D.4534>;
                <D.4533>:
                D.4535 = &MEM[(void *)"epilog" + 3B];
                D.4536 = *D.4535;
                D.4537 = (int) D.4536;
                D.4538 = __s2 + 3;
                D.4539 = *D.4538;
                D.4540 = (int) D.4539;
                __result = D.4537 - D.4540;
                <D.4534>:
                <D.4524>:
                <D.4514>:
              }
              D.3988 = __result;
            }
            iftmp.5 = -D.3988;
            goto <D.4541>;
            <D.4504>:
            iftmp.5 = __builtin_strcmp (cp, "epilog");
            <D.4541>:
            D.3989 = iftmp.5;
          }
          if (D.3989 == 0) goto <D.4542>; else goto <D.4543>;
          <D.4542>:
          output_trailing_text ();
          goto <D.4544>;
          <D.4543>:
          {
            size_t __s1_len;
            size_t __s2_len;

            __s2_len = 6;
            if (__s2_len <= 3) goto <D.4546>; else goto <D.4547>;
            <D.4546>:
            {
              const unsigned char * __s2;
              int __result;

              __s2 = cp;
              D.4548 = "prolog";
              D.4549 = MEM[(const unsigned char *)D.4548];
              D.4550 = (int) D.4549;
              D.4551 = *__s2;
              D.4552 = (int) D.4551;
              __result = D.4550 - D.4552;
              {
                D.4553 = __s2_len != 0;
                D.4554 = __result == 0;
                D.4555 = D.4553 & D.4554;
                if (D.4555 != 0) goto <D.4556>; else goto <D.4557>;
                <D.4556>:
                D.4558 = &MEM[(void *)"prolog" + 1B];
                D.4559 = *D.4558;
                D.4560 = (int) D.4559;
                D.4561 = __s2 + 1;
                D.4562 = *D.4561;
                D.4563 = (int) D.4562;
                __result = D.4560 - D.4563;
                D.4564 = __s2_len > 1;
                D.4554 = __result == 0;
                D.4565 = D.4564 & D.4554;
                if (D.4565 != 0) goto <D.4566>; else goto <D.4567>;
                <D.4566>:
                D.4568 = &MEM[(void *)"prolog" + 2B];
                D.4569 = *D.4568;
                D.4570 = (int) D.4569;
                D.4571 = __s2 + 2;
                D.4572 = *D.4571;
                D.4573 = (int) D.4572;
                __result = D.4570 - D.4573;
                D.4574 = __s2_len > 2;
                D.4554 = __result == 0;
                D.4575 = D.4574 & D.4554;
                if (D.4575 != 0) goto <D.4576>; else goto <D.4577>;
                <D.4576>:
                D.4578 = &MEM[(void *)"prolog" + 3B];
                D.4579 = *D.4578;
                D.4580 = (int) D.4579;
                D.4581 = __s2 + 3;
                D.4582 = *D.4581;
                D.4583 = (int) D.4582;
                __result = D.4580 - D.4583;
                <D.4577>:
                <D.4567>:
                <D.4557>:
              }
              D.3998 = __result;
            }
            iftmp.6 = -D.3998;
            goto <D.4584>;
            <D.4547>:
            iftmp.6 = __builtin_strcmp (cp, "prolog");
            <D.4584>:
            D.3999 = iftmp.6;
          }
          if (D.3999 == 0) goto <D.4585>; else goto <D.4586>;
          <D.4585>:
          prolog_file_name.7 = prolog_file_name;
          prolog_file.8 = prolog_file;
          output_stored_text (prolog_file.8, prolog_file_name.7);
          goto <D.4589>;
          <D.4586>:
          {
            size_t __s1_len;
            size_t __s2_len;

            __s2_len = 5;
            if (__s2_len <= 3) goto <D.4591>; else goto <D.4592>;
            <D.4591>:
            {
              const unsigned char * __s2;
              int __result;

              __s2 = cp;
              D.4593 = "local";
              D.4594 = MEM[(const unsigned char *)D.4593];
              D.4595 = (int) D.4594;
              D.4596 = *__s2;
              D.4597 = (int) D.4596;
              __result = D.4595 - D.4597;
              {
                D.4598 = __s2_len != 0;
                D.4599 = __result == 0;
                D.4600 = D.4598 & D.4599;
                if (D.4600 != 0) goto <D.4601>; else goto <D.4602>;
                <D.4601>:
                D.4603 = &MEM[(void *)"local" + 1B];
                D.4604 = *D.4603;
                D.4605 = (int) D.4604;
                D.4606 = __s2 + 1;
                D.4607 = *D.4606;
                D.4608 = (int) D.4607;
                __result = D.4605 - D.4608;
                D.4609 = __s2_len > 1;
                D.4599 = __result == 0;
                D.4610 = D.4609 & D.4599;
                if (D.4610 != 0) goto <D.4611>; else goto <D.4612>;
                <D.4611>:
                D.4613 = &MEM[(void *)"local" + 2B];
                D.4614 = *D.4613;
                D.4615 = (int) D.4614;
                D.4616 = __s2 + 2;
                D.4617 = *D.4616;
                D.4618 = (int) D.4617;
                __result = D.4615 - D.4618;
                D.4619 = __s2_len > 2;
                D.4599 = __result == 0;
                D.4620 = D.4619 & D.4599;
                if (D.4620 != 0) goto <D.4621>; else goto <D.4622>;
                <D.4621>:
                D.4623 = &MEM[(void *)"local" + 3B];
                D.4624 = *D.4623;
                D.4625 = (int) D.4624;
                D.4626 = __s2 + 3;
                D.4627 = *D.4626;
                D.4628 = (int) D.4627;
                __result = D.4625 - D.4628;
                <D.4622>:
                <D.4612>:
                <D.4602>:
              }
              D.4008 = __result;
            }
            iftmp.9 = -D.4008;
            goto <D.4629>;
            <D.4592>:
            iftmp.9 = __builtin_strcmp (cp, "local");
            <D.4629>:
            D.4009 = iftmp.9;
          }
          if (D.4009 == 0) goto <D.4630>; else goto <D.4631>;
          <D.4630>:
          local_file_name.10 = local_file_name;
          local_file.11 = local_file;
          output_stored_text (local_file.11, local_file_name.10);
          goto <D.4634>;
          <D.4631>:
          {
            size_t __s1_len;
            size_t __s2_len;

            __s2_len = 6;
            if (__s2_len <= 3) goto <D.4636>; else goto <D.4637>;
            <D.4636>:
            {
              const unsigned char * __s2;
              int __result;

              __s2 = cp;
              D.4638 = "tables";
              D.4639 = MEM[(const unsigned char *)D.4638];
              D.4640 = (int) D.4639;
              D.4641 = *__s2;
              D.4642 = (int) D.4641;
              __result = D.4640 - D.4642;
              {
                D.4643 = __s2_len != 0;
                D.4644 = __result == 0;
                D.4645 = D.4643 & D.4644;
                if (D.4645 != 0) goto <D.4646>; else goto <D.4647>;
                <D.4646>:
                D.4648 = &MEM[(void *)"tables" + 1B];
                D.4649 = *D.4648;
                D.4650 = (int) D.4649;
                D.4651 = __s2 + 1;
                D.4652 = *D.4651;
                D.4653 = (int) D.4652;
                __result = D.4650 - D.4653;
                D.4654 = __s2_len > 1;
                D.4644 = __result == 0;
                D.4655 = D.4654 & D.4644;
                if (D.4655 != 0) goto <D.4656>; else goto <D.4657>;
                <D.4656>:
                D.4658 = &MEM[(void *)"tables" + 2B];
                D.4659 = *D.4658;
                D.4660 = (int) D.4659;
                D.4661 = __s2 + 2;
                D.4662 = *D.4661;
                D.4663 = (int) D.4662;
                __result = D.4660 - D.4663;
                D.4664 = __s2_len > 2;
                D.4644 = __result == 0;
                D.4665 = D.4664 & D.4644;
                if (D.4665 != 0) goto <D.4666>; else goto <D.4667>;
                <D.4666>:
                D.4668 = &MEM[(void *)"tables" + 3B];
                D.4669 = *D.4668;
                D.4670 = (int) D.4669;
                D.4671 = __s2 + 3;
                D.4672 = *D.4671;
                D.4673 = (int) D.4672;
                __result = D.4670 - D.4673;
                <D.4667>:
                <D.4657>:
                <D.4647>:
              }
              D.4017 = __result;
            }
            iftmp.12 = -D.4017;
            goto <D.4674>;
            <D.4637>:
            iftmp.12 = __builtin_strcmp (cp, "tables");
            <D.4674>:
            D.4018 = iftmp.12;
          }
          if (D.4018 == 0) goto <D.4675>; else goto <D.4676>;
          <D.4675>:
          output_rule_data ();
          output_yydefred ();
          output_actions ();
          goto <D.4677>;
          <D.4676>:
          {
            size_t __s1_len;
            size_t __s2_len;

            __s2_len = 6;
            if (__s2_len <= 3) goto <D.4679>; else goto <D.4680>;
            <D.4679>:
            {
              const unsigned char * __s2;
              int __result;

              __s2 = cp;
              D.4681 = "tokens";
              D.4682 = MEM[(const unsigned char *)D.4681];
              D.4683 = (int) D.4682;
              D.4684 = *__s2;
              D.4685 = (int) D.4684;
              __result = D.4683 - D.4685;
              {
                D.4686 = __s2_len != 0;
                D.4687 = __result == 0;
                D.4688 = D.4686 & D.4687;
                if (D.4688 != 0) goto <D.4689>; else goto <D.4690>;
                <D.4689>:
                D.4691 = &MEM[(void *)"tokens" + 1B];
                D.4692 = *D.4691;
                D.4693 = (int) D.4692;
                D.4694 = __s2 + 1;
                D.4695 = *D.4694;
                D.4696 = (int) D.4695;
                __result = D.4693 - D.4696;
                D.4697 = __s2_len > 1;
                D.4687 = __result == 0;
                D.4698 = D.4697 & D.4687;
                if (D.4698 != 0) goto <D.4699>; else goto <D.4700>;
                <D.4699>:
                D.4701 = &MEM[(void *)"tokens" + 2B];
                D.4702 = *D.4701;
                D.4703 = (int) D.4702;
                D.4704 = __s2 + 2;
                D.4705 = *D.4704;
                D.4706 = (int) D.4705;
                __result = D.4703 - D.4706;
                D.4707 = __s2_len > 2;
                D.4687 = __result == 0;
                D.4708 = D.4707 & D.4687;
                if (D.4708 != 0) goto <D.4709>; else goto <D.4710>;
                <D.4709>:
                D.4711 = &MEM[(void *)"tokens" + 3B];
                D.4712 = *D.4711;
                D.4713 = (int) D.4712;
                D.4714 = __s2 + 3;
                D.4715 = *D.4714;
                D.4716 = (int) D.4715;
                __result = D.4713 - D.4716;
                <D.4710>:
                <D.4700>:
                <D.4690>:
              }
              D.4029 = __result;
            }
            iftmp.13 = -D.4029;
            goto <D.4717>;
            <D.4680>:
            iftmp.13 = __builtin_strcmp (cp, "tokens");
            <D.4717>:
            D.4030 = iftmp.13;
          }
          if (D.4030 == 0) goto <D.4718>; else goto <D.4719>;
          <D.4718>:
          D.4720 = strtok (0B, "\r\n");
          output_defines (D.4720);
          goto <D.4721>;
          <D.4719>:
          stderr.0 = stderr;
          fprintf (stderr.0, "jay: unknown call (%s) in line %d\n", cp, lno);
          <D.4721>:
          <D.4677>:
          <D.4634>:
          <D.4589>:
          <D.4544>:
          <D.4501>:
          <D.4458>:
          <D.4415>:
          // predicted unlikely by continue predictor.
          goto <D.3956>;
        }
        <D.3959>:
        stdout.2 = stdout;
        fputs (&MEM[(void *)&buf + 1B], stdout.2);
        outline.14 = outline;
        outline.15 = outline.14 + 1;
        outline = outline.15;
      }
      <D.3956>:
      stdin.16 = stdin;
      D.4725 = fgets (&buf, 128, stdin.16);
      if (D.4725 != 0B) goto <D.4041>; else goto <D.4042>;
      <D.4042>:
      free_parser ();
    }
  finally
    {
      buf = {CLOBBER};
    }
}


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

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


fgets (char * restrict __s, int __n, struct FILE * restrict __stream)
{
  long unsigned int D.4729;
  int D.4734;
  char * D.4736;
  long unsigned int D.4737;
  long unsigned int D.4738;
  long unsigned int D.4739;
  long unsigned int D.4742;

  D.4729 = __builtin_object_size (__s, 1);
  if (D.4729 != 18446744073709551615) goto <D.4730>; else goto <D.4731>;
  <D.4730>:
  D.4734 = __builtin_constant_p (__n);
  if (D.4734 == 0) goto <D.4732>; else goto <D.4735>;
  <D.4735>:
  if (__n <= 0) goto <D.4732>; else goto <D.4733>;
  <D.4732>:
  D.4737 = __builtin_object_size (__s, 1);
  D.4736 = __fgets_chk (__s, D.4737, __n, __stream);
  return D.4736;
  <D.4733>:
  D.4738 = (long unsigned int) __n;
  D.4739 = __builtin_object_size (__s, 1);
  if (D.4738 > D.4739) goto <D.4740>; else goto <D.4741>;
  <D.4740>:
  D.4742 = __builtin_object_size (__s, 1);
  D.4736 = __fgets_chk_warn (__s, D.4742, __n, __stream);
  return D.4736;
  <D.4741>:
  <D.4731>:
  D.4736 = __fgets_alias (__s, __n, __stream);
  return D.4736;
}


output_rule_data ()
{
  char * * methods.17;
  long unsigned int D.4745;
  long unsigned int D.4746;
  char * * D.4747;
  char * D.4748;
  int nmethods.18;
  int outline.19;
  int outline.20;
  char * default_line_format.21;
  short int * symbol_value.22;
  int start_symbol.23;
  long unsigned int D.4755;
  long unsigned int D.4756;
  short int * D.4757;
  short int D.4758;
  int D.4759;
  const char * iftmp.24;
  int csharp.25;
  const char * iftmp.26;
  short int * rlhs.27;
  long unsigned int D.4773;
  short int * D.4774;
  short int D.4775;
  long unsigned int D.4776;
  long unsigned int D.4777;
  short int * D.4778;
  short int D.4779;
  int D.4780;
  int nrules.28;
  int outline.29;
  const char * iftmp.30;
  const char * iftmp.31;
  short int * rrhs.32;
  sizetype D.4795;
  sizetype D.4796;
  sizetype D.4797;
  short int * D.4798;
  short int D.4799;
  int D.4800;
  short int * D.4801;
  short int D.4802;
  int D.4803;
  int D.4804;
  int D.4805;
  register int i;
  register int j;

  printf ("/*\n All more than 3 lines long rules are wrapped into a method\n*/\n");
  i = 0;
  goto <D.4053>;
  <D.4052>:
  methods.17 = methods;
  D.4745 = (long unsigned int) i;
  D.4746 = D.4745 * 8;
  D.4747 = methods.17 + D.4746;
  D.4748 = *D.4747;
  printf ("%s", D.4748);
  methods.17 = methods;
  D.4745 = (long unsigned int) i;
  D.4746 = D.4745 * 8;
  D.4747 = methods.17 + D.4746;
  D.4748 = *D.4747;
  free (D.4748);
  printf ("\n\n");
  i = i + 1;
  <D.4053>:
  nmethods.18 = nmethods;
  if (i < nmethods.18) goto <D.4052>; else goto <D.4054>;
  <D.4054>:
  methods.17 = methods;
  free (methods.17);
  outline.19 = outline;
  outline.20 = outline.19 + 1;
  outline = outline.20;
  outline.19 = outline;
  outline.20 = outline.19 + 1;
  default_line_format.21 = default_line_format;
  printf (default_line_format.21, outline.20);
  symbol_value.22 = symbol_value;
  start_symbol.23 = start_symbol;
  D.4755 = (long unsigned int) start_symbol.23;
  D.4756 = D.4755 * 2;
  D.4757 = symbol_value.22 + D.4756;
  D.4758 = *D.4757;
  D.4759 = (int) D.4758;
  csharp.25 = csharp;
  if (csharp.25 != 0) goto <D.4762>; else goto <D.4763>;
  <D.4762>:
  iftmp.24 = "readonly";
  goto <D.4764>;
  <D.4763>:
  iftmp.24 = "final";
  <D.4764>:
  csharp.25 = csharp;
  if (csharp.25 != 0) goto <D.4766>; else goto <D.4767>;
  <D.4766>:
  iftmp.26 = "";
  goto <D.4768>;
  <D.4767>:
  iftmp.26 = " protected";
  <D.4768>:
  printf ("  %s static %s short [] yyLhs  = {%16d,", iftmp.26, iftmp.24, D.4759);
  j = 10;
  i = 3;
  goto <D.4056>;
  <D.4055>:
  if (j > 9) goto <D.4769>; else goto <D.4770>;
  <D.4769>:
  outline.19 = outline;
  outline.20 = outline.19 + 1;
  outline = outline.20;
  putchar (10);
  j = 1;
  goto <D.4771>;
  <D.4770>:
  j = j + 1;
  <D.4771>:
  symbol_value.22 = symbol_value;
  rlhs.27 = rlhs;
  D.4745 = (long unsigned int) i;
  D.4773 = D.4745 * 2;
  D.4774 = rlhs.27 + D.4773;
  D.4775 = *D.4774;
  D.4776 = (long unsigned int) D.4775;
  D.4777 = D.4776 * 2;
  D.4778 = symbol_value.22 + D.4777;
  D.4779 = *D.4778;
  D.4780 = (int) D.4779;
  printf ("%5d,", D.4780);
  i = i + 1;
  <D.4056>:
  nrules.28 = nrules;
  if (i < nrules.28) goto <D.4055>; else goto <D.4057>;
  <D.4057>:
  outline.19 = outline;
  outline.29 = outline.19 + 2;
  outline = outline.29;
  printf ("\n  };\n");
  csharp.25 = csharp;
  if (csharp.25 != 0) goto <D.4784>; else goto <D.4785>;
  <D.4784>:
  iftmp.30 = "readonly";
  goto <D.4786>;
  <D.4785>:
  iftmp.30 = "final";
  <D.4786>:
  csharp.25 = csharp;
  if (csharp.25 != 0) goto <D.4788>; else goto <D.4789>;
  <D.4788>:
  iftmp.31 = "";
  goto <D.4790>;
  <D.4789>:
  iftmp.31 = "protected";
  <D.4790>:
  printf ("  %s static %s short [] yyLen = {%12d,", iftmp.31, iftmp.30, 2);
  j = 10;
  i = 3;
  goto <D.4059>;
  <D.4058>:
  if (j > 9) goto <D.4791>; else goto <D.4792>;
  <D.4791>:
  outline.19 = outline;
  outline.20 = outline.19 + 1;
  outline = outline.20;
  putchar (10);
  j = 1;
  goto <D.4793>;
  <D.4792>:
  j = j + 1;
  <D.4793>:
  rrhs.32 = rrhs;
  D.4795 = (sizetype) i;
  D.4796 = D.4795 + 1;
  D.4797 = D.4796 * 2;
  D.4798 = rrhs.32 + D.4797;
  D.4799 = *D.4798;
  D.4800 = (int) D.4799;
  rrhs.32 = rrhs;
  D.4745 = (long unsigned int) i;
  D.4773 = D.4745 * 2;
  D.4801 = rrhs.32 + D.4773;
  D.4802 = *D.4801;
  D.4803 = (int) D.4802;
  D.4804 = D.4800 - D.4803;
  D.4805 = D.4804 + -1;
  printf ("%5d,", D.4805);
  i = i + 1;
  <D.4059>:
  nrules.28 = nrules;
  if (i < nrules.28) goto <D.4058>; else goto <D.4060>;
  <D.4060>:
  outline.19 = outline;
  outline.29 = outline.19 + 2;
  outline = outline.29;
  printf ("\n  };\n");
}


putchar (int __c)
{
  int D.4806;
  struct _IO_FILE * stdout.33;

  stdout.33 = stdout;
  D.4806 = _IO_putc (__c, stdout.33);
  return D.4806;
}


printf (const char * restrict __fmt)
{
  int D.4809;

  D.4809 = __printf_chk (1, __fmt, __builtin_va_arg_pack ());
  return D.4809;
}


output_yydefred ()
{
  int iftmp.34;
  short int * defred.35;
  short int D.4813;
  int D.4816;
  const char * iftmp.36;
  int csharp.37;
  const char * iftmp.38;
  int outline.39;
  int outline.40;
  int iftmp.41;
  long unsigned int D.4833;
  long unsigned int D.4834;
  short int * D.4835;
  short int D.4836;
  int D.4839;
  int nstates.42;
  int outline.43;
  register int i;
  register int j;

  defred.35 = defred;
  D.4813 = *defred.35;
  if (D.4813 != 0) goto <D.4814>; else goto <D.4815>;
  <D.4814>:
  defred.35 = defred;
  D.4813 = *defred.35;
  D.4816 = (int) D.4813;
  iftmp.34 = D.4816 + -2;
  goto <D.4817>;
  <D.4815>:
  iftmp.34 = 0;
  <D.4817>:
  csharp.37 = csharp;
  if (csharp.37 != 0) goto <D.4820>; else goto <D.4821>;
  <D.4820>:
  iftmp.36 = "readonly";
  goto <D.4822>;
  <D.4821>:
  iftmp.36 = "final";
  <D.4822>:
  csharp.37 = csharp;
  if (csharp.37 != 0) goto <D.4824>; else goto <D.4825>;
  <D.4824>:
  iftmp.38 = "";
  goto <D.4826>;
  <D.4825>:
  iftmp.38 = "protected";
  <D.4826>:
  printf ("  %s static %s short [] yyDefRed = {%13d,", iftmp.38, iftmp.36, iftmp.34);
  j = 10;
  i = 1;
  goto <D.4066>;
  <D.4065>:
  if (j <= 9) goto <D.4827>; else goto <D.4828>;
  <D.4827>:
  j = j + 1;
  goto <D.4829>;
  <D.4828>:
  outline.39 = outline;
  outline.40 = outline.39 + 1;
  outline = outline.40;
  putchar (10);
  j = 1;
  <D.4829>:
  defred.35 = defred;
  D.4833 = (long unsigned int) i;
  D.4834 = D.4833 * 2;
  D.4835 = defred.35 + D.4834;
  D.4836 = *D.4835;
  if (D.4836 != 0) goto <D.4837>; else goto <D.4838>;
  <D.4837>:
  defred.35 = defred;
  D.4833 = (long unsigned int) i;
  D.4834 = D.4833 * 2;
  D.4835 = defred.35 + D.4834;
  D.4836 = *D.4835;
  D.4839 = (int) D.4836;
  iftmp.41 = D.4839 + -2;
  goto <D.4840>;
  <D.4838>:
  iftmp.41 = 0;
  <D.4840>:
  printf ("%5d,", iftmp.41);
  i = i + 1;
  <D.4066>:
  nstates.42 = nstates;
  if (i < nstates.42) goto <D.4065>; else goto <D.4067>;
  <D.4067>:
  outline.39 = outline;
  outline.43 = outline.39 + 2;
  outline = outline.43;
  printf ("\n  };\n");
}


output_actions ()
{
  int nstates.44;
  int D.4844;
  int nvars.45;
  int nvectors.46;
  int nvectors.47;
  long unsigned int D.4848;
  unsigned int D.4849;
  unsigned int D.4850;
  char * froms.48;
  char * tos.49;
  unsigned int D.4853;
  char * tally.50;
  char * width.51;
  short int * lookaheads.52;
  unsigned int * LA.53;
  short int * LAruleno.54;
  short int * accessing_symbol.55;
  short int * goto_map.56;
  int ntokens.57;
  long unsigned int D.4862;
  long unsigned int D.4863;
  void * D.4864;
  short int * from_state.58;
  short int * to_state.59;
  extern int token_actions ();
  extern int goto_actions ();
  extern int sort_actions ();
  extern int pack_table ();
  extern int output_base ();
  extern int output_table ();
  extern int output_check ();

  nstates.44 = nstates;
  D.4844 = nstates.44 * 2;
  nvars.45 = nvars;
  nvectors.46 = D.4844 + nvars.45;
  nvectors = nvectors.46;
  nvectors.47 = nvectors;
  D.4848 = (long unsigned int) nvectors.47;
  D.4849 = (unsigned int) D.4848;
  D.4850 = D.4849 * 8;
  froms.48 = allocate (D.4850);
  froms = froms.48;
  nvectors.47 = nvectors;
  D.4848 = (long unsigned int) nvectors.47;
  D.4849 = (unsigned int) D.4848;
  D.4850 = D.4849 * 8;
  tos.49 = allocate (D.4850);
  tos = tos.49;
  nvectors.47 = nvectors;
  D.4848 = (long unsigned int) nvectors.47;
  D.4849 = (unsigned int) D.4848;
  D.4853 = D.4849 * 2;
  tally.50 = allocate (D.4853);
  tally = tally.50;
  nvectors.47 = nvectors;
  D.4848 = (long unsigned int) nvectors.47;
  D.4849 = (unsigned int) D.4848;
  D.4853 = D.4849 * 2;
  width.51 = allocate (D.4853);
  width = width.51;
  token_actions ();
  lookaheads.52 = lookaheads;
  free (lookaheads.52);
  LA.53 = LA;
  free (LA.53);
  LAruleno.54 = LAruleno;
  free (LAruleno.54);
  accessing_symbol.55 = accessing_symbol;
  free (accessing_symbol.55);
  goto_actions ();
  goto_map.56 = goto_map;
  ntokens.57 = ntokens;
  D.4862 = (long unsigned int) ntokens.57;
  D.4863 = D.4862 * 2;
  D.4864 = goto_map.56 + D.4863;
  free (D.4864);
  from_state.58 = from_state;
  free (from_state.58);
  to_state.59 = to_state;
  free (to_state.59);
  sort_actions ();
  pack_table ();
  output_base ();
  output_table ();
  output_check ();
}


token_actions ()
{
  int ntokens.60;
  int D.4868;
  long unsigned int D.4869;
  unsigned int D.4870;
  unsigned int D.4871;
  struct action * * parser.61;
  long unsigned int D.4873;
  long unsigned int D.4874;
  struct action * * D.4875;
  struct action * D.4876;
  long unsigned int D.4879;
  long unsigned int D.4880;
  short int * D.4881;
  char D.4882;
  char D.4885;
  short int D.4888;
  long unsigned int D.4889;
  long unsigned int D.4890;
  short int * D.4891;
  short int D.4892;
  short int * defred.62;
  long unsigned int D.4897;
  short int * D.4898;
  short int D.4899;
  int D.4902;
  int D.4903;
  long unsigned int D.4904;
  long unsigned int D.4905;
  short int * D.4906;
  short int * tally.63;
  short int * D.4908;
  short int D.4909;
  int nstates.64;
  int D.4911;
  long unsigned int D.4912;
  long unsigned int D.4913;
  short int * D.4914;
  short int D.4915;
  short int * width.65;
  short int * D.4917;
  short int * D.4918;
  short int * * froms.66;
  short int * * D.4922;
  long unsigned int D.4923;
  unsigned int D.4924;
  unsigned int D.4925;
  short int * * tos.67;
  short int * * D.4927;
  short int D.4928;
  short int * symbol_value.68;
  short int * D.4932;
  short int D.4933;
  int D.4934;
  short int * r.69;
  short int * s.70;
  unsigned short D.4941;
  unsigned short D.4942;
  unsigned short D.4943;
  unsigned short D.4944;
  short int D.4945;
  long unsigned int D.4948;
  short int * * D.4949;
  long unsigned int D.4950;
  unsigned int D.4951;
  unsigned int D.4952;
  short int * * D.4953;
  int D.4954;
  long unsigned int D.4955;
  long unsigned int D.4956;
  short int * D.4957;
  short int D.4958;
  short int * r.71;
  short int * s.72;
  unsigned short D.4967;
  unsigned short D.4968;
  short int D.4969;
  register int i;
  register int j;
  register int shiftcount;
  register int reducecount;
  register int max;
  register int min;
  register short int * actionrow;
  register short int * r;
  register short int * s;
  register struct action * p;

  ntokens.60 = ntokens;
  D.4868 = ntokens.60 * 2;
  D.4869 = (long unsigned int) D.4868;
  D.4870 = (unsigned int) D.4869;
  D.4871 = D.4870 * 2;
  actionrow = allocate (D.4871);
  i = 0;
  goto <D.4109>;
  <D.4108>:
  parser.61 = parser;
  D.4873 = (long unsigned int) i;
  D.4874 = D.4873 * 8;
  D.4875 = parser.61 + D.4874;
  D.4876 = *D.4875;
  if (D.4876 != 0B) goto <D.4877>; else goto <D.4878>;
  <D.4877>:
  j = 0;
  goto <D.4097>;
  <D.4096>:
  D.4879 = (long unsigned int) j;
  D.4880 = D.4879 * 2;
  D.4881 = actionrow + D.4880;
  *D.4881 = 0;
  j = j + 1;
  <D.4097>:
  ntokens.60 = ntokens;
  D.4868 = ntokens.60 * 2;
  if (D.4868 > j) goto <D.4096>; else goto <D.4098>;
  <D.4098>:
  shiftcount = 0;
  reducecount = 0;
  parser.61 = parser;
  D.4873 = (long unsigned int) i;
  D.4874 = D.4873 * 8;
  D.4875 = parser.61 + D.4874;
  p = *D.4875;
  goto <D.4100>;
  <D.4099>:
  D.4882 = p->suppressed;
  if (D.4882 == 0) goto <D.4883>; else goto <D.4884>;
  <D.4883>:
  D.4885 = p->action_code;
  if (D.4885 == 1) goto <D.4886>; else goto <D.4887>;
  <D.4886>:
  shiftcount = shiftcount + 1;
  D.4888 = p->symbol;
  D.4889 = (long unsigned int) D.4888;
  D.4890 = D.4889 * 2;
  D.4891 = actionrow + D.4890;
  D.4892 = p->number;
  *D.4891 = D.4892;
  goto <D.4893>;
  <D.4887>:
  D.4885 = p->action_code;
  if (D.4885 == 2) goto <D.4894>; else goto <D.4895>;
  <D.4894>:
  D.4892 = p->number;
  defred.62 = defred;
  D.4873 = (long unsigned int) i;
  D.4897 = D.4873 * 2;
  D.4898 = defred.62 + D.4897;
  D.4899 = *D.4898;
  if (D.4892 != D.4899) goto <D.4900>; else goto <D.4901>;
  <D.4900>:
  reducecount = reducecount + 1;
  D.4888 = p->symbol;
  D.4902 = (int) D.4888;
  ntokens.60 = ntokens;
  D.4903 = D.4902 + ntokens.60;
  D.4904 = (long unsigned int) D.4903;
  D.4905 = D.4904 * 2;
  D.4906 = actionrow + D.4905;
  D.4892 = p->number;
  *D.4906 = D.4892;
  <D.4901>:
  <D.4895>:
  <D.4893>:
  <D.4884>:
  p = p->next;
  <D.4100>:
  if (p != 0B) goto <D.4099>; else goto <D.4101>;
  <D.4101>:
  tally.63 = tally;
  D.4873 = (long unsigned int) i;
  D.4897 = D.4873 * 2;
  D.4908 = tally.63 + D.4897;
  D.4909 = (short int) shiftcount;
  *D.4908 = D.4909;
  tally.63 = tally;
  nstates.64 = nstates;
  D.4911 = nstates.64 + i;
  D.4912 = (long unsigned int) D.4911;
  D.4913 = D.4912 * 2;
  D.4914 = tally.63 + D.4913;
  D.4915 = (short int) reducecount;
  *D.4914 = D.4915;
  width.65 = width;
  D.4873 = (long unsigned int) i;
  D.4897 = D.4873 * 2;
  D.4917 = width.65 + D.4897;
  *D.4917 = 0;
  width.65 = width;
  nstates.64 = nstates;
  D.4911 = nstates.64 + i;
  D.4912 = (long unsigned int) D.4911;
  D.4913 = D.4912 * 2;
  D.4918 = width.65 + D.4913;
  *D.4918 = 0;
  if (shiftcount > 0) goto <D.4919>; else goto <D.4920>;
  <D.4919>:
  froms.66 = froms;
  D.4873 = (long unsigned int) i;
  D.4874 = D.4873 * 8;
  D.4922 = froms.66 + D.4874;
  D.4923 = (long unsigned int) shiftcount;
  D.4924 = (unsigned int) D.4923;
  D.4925 = D.4924 * 2;
  r = allocate (D.4925);
  *D.4922 = r;
  tos.67 = tos;
  D.4873 = (long unsigned int) i;
  D.4874 = D.4873 * 8;
  D.4927 = tos.67 + D.4874;
  D.4923 = (long unsigned int) shiftcount;
  D.4924 = (unsigned int) D.4923;
  D.4925 = D.4924 * 2;
  s = allocate (D.4925);
  *D.4927 = s;
  min = 32767;
  max = 0;
  j = 0;
  goto <D.4103>;
  <D.4102>:
  D.4879 = (long unsigned int) j;
  D.4880 = D.4879 * 2;
  D.4881 = actionrow + D.4880;
  D.4928 = *D.4881;
  if (D.4928 != 0) goto <D.4929>; else goto <D.4930>;
  <D.4929>:
  symbol_value.68 = symbol_value;
  D.4879 = (long unsigned int) j;
  D.4880 = D.4879 * 2;
  D.4932 = symbol_value.68 + D.4880;
  D.4933 = *D.4932;
  D.4934 = (int) D.4933;
  if (D.4934 < min) goto <D.4935>; else goto <D.4936>;
  <D.4935>:
  symbol_value.68 = symbol_value;
  D.4879 = (long unsigned int) j;
  D.4880 = D.4879 * 2;
  D.4932 = symbol_value.68 + D.4880;
  D.4933 = *D.4932;
  min = (int) D.4933;
  <D.4936>:
  symbol_value.68 = symbol_value;
  D.4879 = (long unsigned int) j;
  D.4880 = D.4879 * 2;
  D.4932 = symbol_value.68 + D.4880;
  D.4933 = *D.4932;
  D.4934 = (int) D.4933;
  if (D.4934 > max) goto <D.4937>; else goto <D.4938>;
  <D.4937>:
  symbol_value.68 = symbol_value;
  D.4879 = (long unsigned int) j;
  D.4880 = D.4879 * 2;
  D.4932 = symbol_value.68 + D.4880;
  D.4933 = *D.4932;
  max = (int) D.4933;
  <D.4938>:
  r.69 = r;
  r = r.69 + 2;
  symbol_value.68 = symbol_value;
  D.4879 = (long unsigned int) j;
  D.4880 = D.4879 * 2;
  D.4932 = symbol_value.68 + D.4880;
  D.4933 = *D.4932;
  *r.69 = D.4933;
  s.70 = s;
  s = s.70 + 2;
  D.4879 = (long unsigned int) j;
  D.4880 = D.4879 * 2;
  D.4881 = actionrow + D.4880;
  D.4928 = *D.4881;
  *s.70 = D.4928;
  <D.4930>:
  j = j + 1;
  <D.4103>:
  ntokens.60 = ntokens;
  if (j < ntokens.60) goto <D.4102>; else goto <D.4104>;
  <D.4104>:
  width.65 = width;
  D.4873 = (long unsigned int) i;
  D.4897 = D.4873 * 2;
  D.4917 = width.65 + D.4897;
  D.4941 = (unsigned short) max;
  D.4942 = (unsigned short) min;
  D.4943 = D.4941 - D.4942;
  D.4944 = D.4943 + 1;
  D.4945 = (short int) D.4944;
  *D.4917 = D.4945;
  <D.4920>:
  if (reducecount > 0) goto <D.4946>; else goto <D.4947>;
  <D.4946>:
  froms.66 = froms;
  nstates.64 = nstates;
  D.4911 = nstates.64 + i;
  D.4912 = (long unsigned int) D.4911;
  D.4948 = D.4912 * 8;
  D.4949 = froms.66 + D.4948;
  D.4950 = (long unsigned int) reducecount;
  D.4951 = (unsigned int) D.4950;
  D.4952 = D.4951 * 2;
  r = allocate (D.4952);
  *D.4949 = r;
  tos.67 = tos;
  nstates.64 = nstates;
  D.4911 = nstates.64 + i;
  D.4912 = (long unsigned int) D.4911;
  D.4948 = D.4912 * 8;
  D.4953 = tos.67 + D.4948;
  D.4950 = (long unsigned int) reducecount;
  D.4951 = (unsigned int) D.4950;
  D.4952 = D.4951 * 2;
  s = allocate (D.4952);
  *D.4953 = s;
  min = 32767;
  max = 0;
  j = 0;
  goto <D.4106>;
  <D.4105>:
  ntokens.60 = ntokens;
  D.4954 = ntokens.60 + j;
  D.4955 = (long unsigned int) D.4954;
  D.4956 = D.4955 * 2;
  D.4957 = actionrow + D.4956;
  D.4958 = *D.4957;
  if (D.4958 != 0) goto <D.4959>; else goto <D.4960>;
  <D.4959>:
  symbol_value.68 = symbol_value;
  D.4879 = (long unsigned int) j;
  D.4880 = D.4879 * 2;
  D.4932 = symbol_value.68 + D.4880;
  D.4933 = *D.4932;
  D.4934 = (int) D.4933;
  if (D.4934 < min) goto <D.4961>; else goto <D.4962>;
  <D.4961>:
  symbol_value.68 = symbol_value;
  D.4879 = (long unsigned int) j;
  D.4880 = D.4879 * 2;
  D.4932 = symbol_value.68 + D.4880;
  D.4933 = *D.4932;
  min = (int) D.4933;
  <D.4962>:
  symbol_value.68 = symbol_value;
  D.4879 = (long unsigned int) j;
  D.4880 = D.4879 * 2;
  D.4932 = symbol_value.68 + D.4880;
  D.4933 = *D.4932;
  D.4934 = (int) D.4933;
  if (D.4934 > max) goto <D.4963>; else goto <D.4964>;
  <D.4963>:
  symbol_value.68 = symbol_value;
  D.4879 = (long unsigned int) j;
  D.4880 = D.4879 * 2;
  D.4932 = symbol_value.68 + D.4880;
  D.4933 = *D.4932;
  max = (int) D.4933;
  <D.4964>:
  r.71 = r;
  r = r.71 + 2;
  symbol_value.68 = symbol_value;
  D.4879 = (long unsigned int) j;
  D.4880 = D.4879 * 2;
  D.4932 = symbol_value.68 + D.4880;
  D.4933 = *D.4932;
  *r.71 = D.4933;
  s.72 = s;
  s = s.72 + 2;
  ntokens.60 = ntokens;
  D.4954 = ntokens.60 + j;
  D.4955 = (long unsigned int) D.4954;
  D.4956 = D.4955 * 2;
  D.4957 = actionrow + D.4956;
  D.4958 = *D.4957;
  D.4967 = (unsigned short) D.4958;
  D.4968 = D.4967 + 65534;
  D.4969 = (short int) D.4968;
  *s.72 = D.4969;
  <D.4960>:
  j = j + 1;
  <D.4106>:
  ntokens.60 = ntokens;
  if (j < ntokens.60) goto <D.4105>; else goto <D.4107>;
  <D.4107>:
  width.65 = width;
  nstates.64 = nstates;
  D.4911 = nstates.64 + i;
  D.4912 = (long unsigned int) D.4911;
  D.4913 = D.4912 * 2;
  D.4918 = width.65 + D.4913;
  D.4941 = (unsigned short) max;
  D.4942 = (unsigned short) min;
  D.4943 = D.4941 - D.4942;
  D.4944 = D.4943 + 1;
  D.4945 = (short int) D.4944;
  *D.4918 = D.4945;
  <D.4947>:
  <D.4878>:
  i = i + 1;
  <D.4109>:
  nstates.64 = nstates;
  if (i < nstates.64) goto <D.4108>; else goto <D.4110>;
  <D.4110>:
  free (actionrow);
}


goto_actions ()
{
  int nstates.73;
  long unsigned int D.4971;
  unsigned int D.4972;
  unsigned int D.4973;
  char * state_count.74;
  int start_symbol.75;
  int D.4976;
  const char * iftmp.76;
  int csharp.77;
  int outline.78;
  int outline.79;
  int nsyms.80;
  int outline.81;
  short int * state_count.82;
  register int i;
  register int j;
  register int k;
  extern int default_goto ();
  extern int save_column ();

  nstates.73 = nstates;
  D.4971 = (long unsigned int) nstates.73;
  D.4972 = (unsigned int) D.4971;
  D.4973 = D.4972 * 2;
  state_count.74 = allocate (D.4973);
  state_count = state_count.74;
  start_symbol.75 = start_symbol;
  D.4976 = start_symbol.75 + 1;
  k = default_goto (D.4976);
  csharp.77 = csharp;
  if (csharp.77 != 0) goto <D.4979>; else goto <D.4980>;
  <D.4979>:
  iftmp.76 = "readonly";
  goto <D.4981>;
  <D.4980>:
  iftmp.76 = "final";
  <D.4981>:
  printf ("  protected static %s short [] yyDgoto  = {%14d,", iftmp.76, k);
  start_symbol.75 = start_symbol;
  D.4976 = start_symbol.75 + 1;
  save_column (D.4976, k);
  j = 10;
  start_symbol.75 = start_symbol;
  i = start_symbol.75 + 2;
  goto <D.4119>;
  <D.4118>:
  if (j > 9) goto <D.4982>; else goto <D.4983>;
  <D.4982>:
  outline.78 = outline;
  outline.79 = outline.78 + 1;
  outline = outline.79;
  putchar (10);
  j = 1;
  goto <D.4986>;
  <D.4983>:
  j = j + 1;
  <D.4986>:
  k = default_goto (i);
  printf ("%5d,", k);
  save_column (i, k);
  i = i + 1;
  <D.4119>:
  nsyms.80 = nsyms;
  if (i < nsyms.80) goto <D.4118>; else goto <D.4120>;
  <D.4120>:
  outline.78 = outline;
  outline.81 = outline.78 + 2;
  outline = outline.81;
  printf ("\n  };\n");
  state_count.82 = state_count;
  free (state_count.82);
}


default_goto (int symbol)
{
  short int * goto_map.83;
  long unsigned int D.4991;
  long unsigned int D.4992;
  short int * D.4993;
  short int D.4994;
  sizetype D.4995;
  sizetype D.4996;
  sizetype D.4997;
  short int * D.4998;
  short int D.4999;
  int D.5002;
  short int * state_count.84;
  long unsigned int D.5004;
  long unsigned int D.5005;
  short int * D.5006;
  int nstates.85;
  short int * to_state.86;
  short int * D.5009;
  short int D.5010;
  long unsigned int D.5011;
  long unsigned int D.5012;
  short int * D.5013;
  short int D.5014;
  short int D.5015;
  unsigned short D.5016;
  unsigned short D.5017;
  short int D.5018;
  short int D.5019;
  int D.5020;
  register int i;
  register int m;
  register int n;
  register int default_state;
  register int max;

  goto_map.83 = goto_map;
  D.4991 = (long unsigned int) symbol;
  D.4992 = D.4991 * 2;
  D.4993 = goto_map.83 + D.4992;
  D.4994 = *D.4993;
  m = (int) D.4994;
  goto_map.83 = goto_map;
  D.4995 = (sizetype) symbol;
  D.4996 = D.4995 + 1;
  D.4997 = D.4996 * 2;
  D.4998 = goto_map.83 + D.4997;
  D.4999 = *D.4998;
  n = (int) D.4999;
  if (m == n) goto <D.5000>; else goto <D.5001>;
  <D.5000>:
  D.5002 = 0;
  return D.5002;
  <D.5001>:
  i = 0;
  goto <D.4132>;
  <D.4131>:
  state_count.84 = state_count;
  D.5004 = (long unsigned int) i;
  D.5005 = D.5004 * 2;
  D.5006 = state_count.84 + D.5005;
  *D.5006 = 0;
  i = i + 1;
  <D.4132>:
  nstates.85 = nstates;
  if (i < nstates.85) goto <D.4131>; else goto <D.4133>;
  <D.4133>:
  i = m;
  goto <D.4135>;
  <D.4134>:
  state_count.84 = state_count;
  to_state.86 = to_state;
  D.5004 = (long unsigned int) i;
  D.5005 = D.5004 * 2;
  D.5009 = to_state.86 + D.5005;
  D.5010 = *D.5009;
  D.5011 = (long unsigned int) D.5010;
  D.5012 = D.5011 * 2;
  D.5013 = state_count.84 + D.5012;
  D.5014 = *D.5013;
  D.5015 = D.5014;
  D.5016 = (unsigned short) D.5015;
  D.5017 = D.5016 + 1;
  D.5018 = (short int) D.5017;
  *D.5013 = D.5018;
  i = i + 1;
  <D.4135>:
  if (i < n) goto <D.4134>; else goto <D.4136>;
  <D.4136>:
  max = 0;
  default_state = 0;
  i = 0;
  goto <D.4138>;
  <D.4137>:
  state_count.84 = state_count;
  D.5004 = (long unsigned int) i;
  D.5005 = D.5004 * 2;
  D.5006 = state_count.84 + D.5005;
  D.5019 = *D.5006;
  D.5020 = (int) D.5019;
  if (D.5020 > max) goto <D.5021>; else goto <D.5022>;
  <D.5021>:
  state_count.84 = state_count;
  D.5004 = (long unsigned int) i;
  D.5005 = D.5004 * 2;
  D.5006 = state_count.84 + D.5005;
  D.5019 = *D.5006;
  max = (int) D.5019;
  default_state = i;
  <D.5022>:
  i = i + 1;
  <D.4138>:
  nstates.85 = nstates;
  if (i < nstates.85) goto <D.4137>; else goto <D.4139>;
  <D.4139>:
  D.5002 = default_state;
  return D.5002;
}


save_column (int symbol, int default_state)
{
  short int * goto_map.87;
  long unsigned int D.5025;
  long unsigned int D.5026;
  short int * D.5027;
  short int D.5028;
  sizetype D.5029;
  sizetype D.5030;
  sizetype D.5031;
  short int * D.5032;
  short int D.5033;
  short int * to_state.88;
  long unsigned int D.5035;
  long unsigned int D.5036;
  short int * D.5037;
  short int D.5038;
  int D.5039;
  short int * symbol_value.89;
  short int * D.5045;
  short int D.5046;
  int D.5047;
  int nstates.90;
  int D.5049;
  short int * * froms.91;
  long unsigned int D.5051;
  long unsigned int D.5052;
  short int * * D.5053;
  long unsigned int D.5054;
  unsigned int D.5055;
  unsigned int D.5056;
  short int * * tos.92;
  short int * * D.5058;
  short int * sp1.93;
  short int * from_state.94;
  short int * D.5063;
  short int D.5064;
  short int * sp2.95;
  short int * tally.96;
  long unsigned int D.5067;
  short int * D.5068;
  short int D.5069;
  short int * width.97;
  short int * D.5071;
  short int * D.5072;
  short int D.5073;
  unsigned short D.5074;
  short int D.5075;
  unsigned short D.5076;
  unsigned short D.5077;
  unsigned short D.5078;
  short int D.5079;
  register int i;
  register int m;
  register int n;
  register short int * sp;
  register short int * sp1;
  register short int * sp2;
  register int count;
  register int symno;

  goto_map.87 = goto_map;
  D.5025 = (long unsigned int) symbol;
  D.5026 = D.5025 * 2;
  D.5027 = goto_map.87 + D.5026;
  D.5028 = *D.5027;
  m = (int) D.5028;
  goto_map.87 = goto_map;
  D.5029 = (sizetype) symbol;
  D.5030 = D.5029 + 1;
  D.5031 = D.5030 * 2;
  D.5032 = goto_map.87 + D.5031;
  D.5033 = *D.5032;
  n = (int) D.5033;
  count = 0;
  i = m;
  goto <D.4153>;
  <D.4152>:
  to_state.88 = to_state;
  D.5035 = (long unsigned int) i;
  D.5036 = D.5035 * 2;
  D.5037 = to_state.88 + D.5036;
  D.5038 = *D.5037;
  D.5039 = (int) D.5038;
  if (D.5039 != default_state) goto <D.5040>; else goto <D.5041>;
  <D.5040>:
  count = count + 1;
  <D.5041>:
  i = i + 1;
  <D.4153>:
  if (i < n) goto <D.4152>; else goto <D.4154>;
  <D.4154>:
  if (count == 0) goto <D.5042>; else goto <D.5043>;
  <D.5042>:
  return;
  <D.5043>:
  symbol_value.89 = symbol_value;
  D.5025 = (long unsigned int) symbol;
  D.5026 = D.5025 * 2;
  D.5045 = symbol_value.89 + D.5026;
  D.5046 = *D.5045;
  D.5047 = (int) D.5046;
  nstates.90 = nstates;
  D.5049 = nstates.90 * 2;
  symno = D.5047 + D.5049;
  froms.91 = froms;
  D.5051 = (long unsigned int) symno;
  D.5052 = D.5051 * 8;
  D.5053 = froms.91 + D.5052;
  D.5054 = (long unsigned int) count;
  D.5055 = (unsigned int) D.5054;
  D.5056 = D.5055 * 2;
  sp = allocate (D.5056);
  sp1 = sp;
  *D.5053 = sp1;
  tos.92 = tos;
  D.5051 = (long unsigned int) symno;
  D.5052 = D.5051 * 8;
  D.5058 = tos.92 + D.5052;
  D.5054 = (long unsigned int) count;
  D.5055 = (unsigned int) D.5054;
  D.5056 = D.5055 * 2;
  sp2 = allocate (D.5056);
  *D.5058 = sp2;
  i = m;
  goto <D.4156>;
  <D.4155>:
  to_state.88 = to_state;
  D.5035 = (long unsigned int) i;
  D.5036 = D.5035 * 2;
  D.5037 = to_state.88 + D.5036;
  D.5038 = *D.5037;
  D.5039 = (int) D.5038;
  if (D.5039 != default_state) goto <D.5059>; else goto <D.5060>;
  <D.5059>:
  sp1.93 = sp1;
  sp1 = sp1.93 + 2;
  from_state.94 = from_state;
  D.5035 = (long unsigned int) i;
  D.5036 = D.5035 * 2;
  D.5063 = from_state.94 + D.5036;
  D.5064 = *D.5063;
  *sp1.93 = D.5064;
  sp2.95 = sp2;
  sp2 = sp2.95 + 2;
  to_state.88 = to_state;
  D.5035 = (long unsigned int) i;
  D.5036 = D.5035 * 2;
  D.5037 = to_state.88 + D.5036;
  D.5038 = *D.5037;
  *sp2.95 = D.5038;
  <D.5060>:
  i = i + 1;
  <D.4156>:
  if (i < n) goto <D.4155>; else goto <D.4157>;
  <D.4157>:
  tally.96 = tally;
  D.5051 = (long unsigned int) symno;
  D.5067 = D.5051 * 2;
  D.5068 = tally.96 + D.5067;
  D.5069 = (short int) count;
  *D.5068 = D.5069;
  width.97 = width;
  D.5051 = (long unsigned int) symno;
  D.5067 = D.5051 * 2;
  D.5071 = width.97 + D.5067;
  D.5072 = sp1 + 18446744073709551614;
  D.5073 = *D.5072;
  D.5074 = (unsigned short) D.5073;
  D.5075 = *sp;
  D.5076 = (unsigned short) D.5075;
  D.5077 = D.5074 - D.5076;
  D.5078 = D.5077 + 1;
  D.5079 = (short int) D.5078;
  *D.5071 = D.5079;
}


sort_actions ()
{
  int nvectors.98;
  long unsigned int D.5082;
  unsigned int D.5083;
  unsigned int D.5084;
  char * order.99;
  short int * tally.100;
  long unsigned int D.5087;
  long unsigned int D.5088;
  short int * D.5089;
  short int D.5090;
  short int * width.101;
  short int * D.5094;
  short int D.5095;
  int nentries.102;
  short int * order.103;
  long unsigned int D.5099;
  long unsigned int D.5100;
  short int * D.5101;
  short int D.5102;
  long unsigned int D.5103;
  long unsigned int D.5104;
  short int * D.5105;
  short int D.5106;
  int D.5107;
  short int * D.5110;
  short int D.5111;
  int D.5112;
  sizetype D.5113;
  sizetype D.5114;
  sizetype D.5115;
  short int * D.5116;
  long unsigned int D.5117;
  long unsigned int D.5118;
  short int * D.5119;
  short int D.5120;
  sizetype D.5121;
  sizetype D.5122;
  sizetype D.5123;
  short int * D.5124;
  short int D.5125;
  int nentries.104;
  register int i;
  register int j;
  register int k;
  register int t;
  register int w;

  nvectors.98 = nvectors;
  D.5082 = (long unsigned int) nvectors.98;
  D.5083 = (unsigned int) D.5082;
  D.5084 = D.5083 * 2;
  order.99 = allocate (D.5084);
  order = order.99;
  nentries = 0;
  i = 0;
  goto <D.4175>;
  <D.4174>:
  tally.100 = tally;
  D.5087 = (long unsigned int) i;
  D.5088 = D.5087 * 2;
  D.5089 = tally.100 + D.5088;
  D.5090 = *D.5089;
  if (D.5090 > 0) goto <D.5091>; else goto <D.5092>;
  <D.5091>:
  tally.100 = tally;
  D.5087 = (long unsigned int) i;
  D.5088 = D.5087 * 2;
  D.5089 = tally.100 + D.5088;
  D.5090 = *D.5089;
  t = (int) D.5090;
  width.101 = width;
  D.5087 = (long unsigned int) i;
  D.5088 = D.5087 * 2;
  D.5094 = width.101 + D.5088;
  D.5095 = *D.5094;
  w = (int) D.5095;
  nentries.102 = nentries;
  j = nentries.102 + -1;
  goto <D.4166>;
  <D.4165>:
  j = j + -1;
  <D.4166>:
  if (j >= 0) goto <D.5097>; else goto <D.4167>;
  <D.5097>:
  width.101 = width;
  order.103 = order;
  D.5099 = (long unsigned int) j;
  D.5100 = D.5099 * 2;
  D.5101 = order.103 + D.5100;
  D.5102 = *D.5101;
  D.5103 = (long unsigned int) D.5102;
  D.5104 = D.5103 * 2;
  D.5105 = width.101 + D.5104;
  D.5106 = *D.5105;
  D.5107 = (int) D.5106;
  if (D.5107 < w) goto <D.4165>; else goto <D.4167>;
  <D.4167>:
  goto <D.4169>;
  <D.4168>:
  j = j + -1;
  <D.4169>:
  if (j >= 0) goto <D.5108>; else goto <D.4170>;
  <D.5108>:
  width.101 = width;
  order.103 = order;
  D.5099 = (long unsigned int) j;
  D.5100 = D.5099 * 2;
  D.5101 = order.103 + D.5100;
  D.5102 = *D.5101;
  D.5103 = (long unsigned int) D.5102;
  D.5104 = D.5103 * 2;
  D.5105 = width.101 + D.5104;
  D.5106 = *D.5105;
  D.5107 = (int) D.5106;
  if (D.5107 == w) goto <D.5109>; else goto <D.4170>;
  <D.5109>:
  tally.100 = tally;
  order.103 = order;
  D.5099 = (long unsigned int) j;
  D.5100 = D.5099 * 2;
  D.5101 = order.103 + D.5100;
  D.5102 = *D.5101;
  D.5103 = (long unsigned int) D.5102;
  D.5104 = D.5103 * 2;
  D.5110 = tally.100 + D.5104;
  D.5111 = *D.5110;
  D.5112 = (int) D.5111;
  if (D.5112 < t) goto <D.4168>; else goto <D.4170>;
  <D.4170>:
  nentries.102 = nentries;
  k = nentries.102 + -1;
  goto <D.4172>;
  <D.4171>:
  order.103 = order;
  D.5113 = (sizetype) k;
  D.5114 = D.5113 + 1;
  D.5115 = D.5114 * 2;
  D.5116 = order.103 + D.5115;
  order.103 = order;
  D.5117 = (long unsigned int) k;
  D.5118 = D.5117 * 2;
  D.5119 = order.103 + D.5118;
  D.5120 = *D.5119;
  *D.5116 = D.5120;
  k = k + -1;
  <D.4172>:
  if (k > j) goto <D.4171>; else goto <D.4173>;
  <D.4173>:
  order.103 = order;
  D.5121 = (sizetype) j;
  D.5122 = D.5121 + 1;
  D.5123 = D.5122 * 2;
  D.5124 = order.103 + D.5123;
  D.5125 = (short int) i;
  *D.5124 = D.5125;
  nentries.102 = nentries;
  nentries.104 = nentries.102 + 1;
  nentries = nentries.104;
  <D.5092>:
  i = i + 1;
  <D.4175>:
  nvectors.98 = nvectors;
  if (i < nvectors.98) goto <D.4174>; else goto <D.4176>;
  <D.4176>:
}


pack_table ()
{
  int nvectors.105;
  long unsigned int D.5128;
  unsigned int D.5129;
  unsigned int D.5130;
  char * base.106;
  int nentries.107;
  long unsigned int D.5133;
  unsigned int D.5134;
  unsigned int D.5135;
  char * pos.108;
  int maxtable.109;
  long unsigned int D.5138;
  unsigned int D.5139;
  unsigned int D.5140;
  char * table.110;
  char * check.111;
  short int * check.112;
  long unsigned int D.5144;
  long unsigned int D.5145;
  short int * D.5146;
  short int * base.113;
  long unsigned int D.5151;
  long unsigned int D.5152;
  short int * D.5153;
  short int D.5154;
  short int * pos.114;
  short int * D.5156;
  short int D.5157;
  short int * order.115;
  short int * D.5159;
  short int D.5160;
  long unsigned int D.5161;
  long unsigned int D.5162;
  short int * D.5163;
  short int * * froms.116;
  long unsigned int D.5165;
  short int * * D.5166;
  short int * D.5167;
  short int * * tos.117;
  short int * * D.5171;
  short int * D.5172;
  register int i;
  register int place;
  register int state;

  nvectors.105 = nvectors;
  D.5128 = (long unsigned int) nvectors.105;
  D.5129 = (unsigned int) D.5128;
  D.5130 = D.5129 * 2;
  base.106 = allocate (D.5130);
  base = base.106;
  nentries.107 = nentries;
  D.5133 = (long unsigned int) nentries.107;
  D.5134 = (unsigned int) D.5133;
  D.5135 = D.5134 * 2;
  pos.108 = allocate (D.5135);
  pos = pos.108;
  maxtable = 1000;
  maxtable.109 = maxtable;
  D.5138 = (long unsigned int) maxtable.109;
  D.5139 = (unsigned int) D.5138;
  D.5140 = D.5139 * 2;
  table.110 = allocate (D.5140);
  table = table.110;
  maxtable.109 = maxtable;
  D.5138 = (long unsigned int) maxtable.109;
  D.5139 = (unsigned int) D.5138;
  D.5140 = D.5139 * 2;
  check.111 = allocate (D.5140);
  check = check.111;
  lowzero = 0;
  high = 0;
  i = 0;
  goto <D.4183>;
  <D.4182>:
  check.112 = check;
  D.5144 = (long unsigned int) i;
  D.5145 = D.5144 * 2;
  D.5146 = check.112 + D.5145;
  *D.5146 = -1;
  i = i + 1;
  <D.4183>:
  maxtable.109 = maxtable;
  if (i < maxtable.109) goto <D.4182>; else goto <D.4184>;
  <D.4184>:
  i = 0;
  goto <D.4190>;
  <D.4189>:
  {
    extern int matching_vector ();
    extern int pack_vector ();

    state = matching_vector (i);
    if (state < 0) goto <D.5147>; else goto <D.5148>;
    <D.5147>:
    place = pack_vector (i);
    goto <D.5149>;
    <D.5148>:
    base.113 = base;
    D.5151 = (long unsigned int) state;
    D.5152 = D.5151 * 2;
    D.5153 = base.113 + D.5152;
    D.5154 = *D.5153;
    place = (int) D.5154;
    <D.5149>:
    pos.114 = pos;
    D.5144 = (long unsigned int) i;
    D.5145 = D.5144 * 2;
    D.5156 = pos.114 + D.5145;
    D.5157 = (short int) place;
    *D.5156 = D.5157;
    base.113 = base;
    order.115 = order;
    D.5144 = (long unsigned int) i;
    D.5145 = D.5144 * 2;
    D.5159 = order.115 + D.5145;
    D.5160 = *D.5159;
    D.5161 = (long unsigned int) D.5160;
    D.5162 = D.5161 * 2;
    D.5163 = base.113 + D.5162;
    D.5157 = (short int) place;
    *D.5163 = D.5157;
  }
  i = i + 1;
  <D.4190>:
  nentries.107 = nentries;
  if (i < nentries.107) goto <D.4189>; else goto <D.4191>;
  <D.4191>:
  i = 0;
  goto <D.4193>;
  <D.4192>:
  froms.116 = froms;
  D.5144 = (long unsigned int) i;
  D.5165 = D.5144 * 8;
  D.5166 = froms.116 + D.5165;
  D.5167 = *D.5166;
  if (D.5167 != 0B) goto <D.5168>; else goto <D.5169>;
  <D.5168>:
  froms.116 = froms;
  D.5144 = (long unsigned int) i;
  D.5165 = D.5144 * 8;
  D.5166 = froms.116 + D.5165;
  D.5167 = *D.5166;
  free (D.5167);
  <D.5169>:
  tos.117 = tos;
  D.5144 = (long unsigned int) i;
  D.5165 = D.5144 * 8;
  D.5171 = tos.117 + D.5165;
  D.5172 = *D.5171;
  if (D.5172 != 0B) goto <D.5173>; else goto <D.5174>;
  <D.5173>:
  tos.117 = tos;
  D.5144 = (long unsigned int) i;
  D.5165 = D.5144 * 8;
  D.5171 = tos.117 + D.5165;
  D.5172 = *D.5171;
  free (D.5172);
  <D.5174>:
  i = i + 1;
  <D.4193>:
  nvectors.105 = nvectors;
  if (i < nvectors.105) goto <D.4192>; else goto <D.4194>;
  <D.4194>:
  froms.116 = froms;
  free (froms.116);
  tos.117 = tos;
  free (tos.117);
  pos.114 = pos;
  free (pos.114);
}


matching_vector (int vector)
{
  short int * order.118;
  long unsigned int D.5176;
  long unsigned int D.5177;
  short int * D.5178;
  short int D.5179;
  int nstates.119;
  int D.5181;
  int D.5184;
  short int * tally.120;
  long unsigned int D.5186;
  long unsigned int D.5187;
  short int * D.5188;
  short int D.5189;
  short int * width.121;
  short int * D.5191;
  short int D.5192;
  long unsigned int D.5193;
  long unsigned int D.5194;
  short int * D.5195;
  short int D.5196;
  long unsigned int D.5199;
  long unsigned int D.5200;
  short int * D.5201;
  short int D.5202;
  int D.5203;
  short int * D.5205;
  short int D.5206;
  int D.5207;
  short int * * tos.122;
  long unsigned int D.5211;
  short int * * D.5212;
  short int * D.5213;
  long unsigned int D.5214;
  long unsigned int D.5215;
  short int * D.5216;
  short int D.5217;
  long unsigned int D.5218;
  short int * * D.5219;
  short int * D.5220;
  short int * D.5221;
  short int D.5222;
  short int * * froms.123;
  short int * * D.5225;
  short int * D.5226;
  short int * D.5227;
  short int D.5228;
  short int * * D.5229;
  short int * D.5230;
  short int * D.5231;
  short int D.5232;
  _Bool D.5233;
  _Bool D.5234;
  _Bool D.5235;
  register int i;
  register int j;
  register int k;
  register int t;
  register int w;
  register int match;
  register int prev;

  order.118 = order;
  D.5176 = (long unsigned int) vector;
  D.5177 = D.5176 * 2;
  D.5178 = order.118 + D.5177;
  D.5179 = *D.5178;
  i = (int) D.5179;
  nstates.119 = nstates;
  D.5181 = nstates.119 * 2;
  if (D.5181 <= i) goto <D.5182>; else goto <D.5183>;
  <D.5182>:
  D.5184 = -1;
  return D.5184;
  <D.5183>:
  tally.120 = tally;
  D.5186 = (long unsigned int) i;
  D.5187 = D.5186 * 2;
  D.5188 = tally.120 + D.5187;
  D.5189 = *D.5188;
  t = (int) D.5189;
  width.121 = width;
  D.5186 = (long unsigned int) i;
  D.5187 = D.5186 * 2;
  D.5191 = width.121 + D.5187;
  D.5192 = *D.5191;
  w = (int) D.5192;
  prev = vector + -1;
  goto <D.4209>;
  <D.4208>:
  order.118 = order;
  D.5193 = (long unsigned int) prev;
  D.5194 = D.5193 * 2;
  D.5195 = order.118 + D.5194;
  D.5196 = *D.5195;
  j = (int) D.5196;
  width.121 = width;
  D.5199 = (long unsigned int) j;
  D.5200 = D.5199 * 2;
  D.5201 = width.121 + D.5200;
  D.5202 = *D.5201;
  D.5203 = (int) D.5202;
  if (D.5203 != w) goto <D.5197>; else goto <D.5204>;
  <D.5204>:
  tally.120 = tally;
  D.5199 = (long unsigned int) j;
  D.5200 = D.5199 * 2;
  D.5205 = tally.120 + D.5200;
  D.5206 = *D.5205;
  D.5207 = (int) D.5206;
  if (D.5207 != t) goto <D.5197>; else goto <D.5198>;
  <D.5197>:
  D.5184 = -1;
  return D.5184;
  <D.5198>:
  match = 1;
  k = 0;
  goto <D.4206>;
  <D.4205>:
  tos.122 = tos;
  D.5199 = (long unsigned int) j;
  D.5211 = D.5199 * 8;
  D.5212 = tos.122 + D.5211;
  D.5213 = *D.5212;
  D.5214 = (long unsigned int) k;
  D.5215 = D.5214 * 2;
  D.5216 = D.5213 + D.5215;
  D.5217 = *D.5216;
  tos.122 = tos;
  D.5186 = (long unsigned int) i;
  D.5218 = D.5186 * 8;
  D.5219 = tos.122 + D.5218;
  D.5220 = *D.5219;
  D.5214 = (long unsigned int) k;
  D.5215 = D.5214 * 2;
  D.5221 = D.5220 + D.5215;
  D.5222 = *D.5221;
  if (D.5217 != D.5222) goto <D.5208>; else goto <D.5223>;
  <D.5223>:
  froms.123 = froms;
  D.5199 = (long unsigned int) j;
  D.5211 = D.5199 * 8;
  D.5225 = froms.123 + D.5211;
  D.5226 = *D.5225;
  D.5214 = (long unsigned int) k;
  D.5215 = D.5214 * 2;
  D.5227 = D.5226 + D.5215;
  D.5228 = *D.5227;
  froms.123 = froms;
  D.5186 = (long unsigned int) i;
  D.5218 = D.5186 * 8;
  D.5229 = froms.123 + D.5218;
  D.5230 = *D.5229;
  D.5214 = (long unsigned int) k;
  D.5215 = D.5214 * 2;
  D.5231 = D.5230 + D.5215;
  D.5232 = *D.5231;
  if (D.5228 != D.5232) goto <D.5208>; else goto <D.5209>;
  <D.5208>:
  match = 0;
  <D.5209>:
  k = k + 1;
  <D.4206>:
  D.5233 = match != 0;
  D.5234 = k < t;
  D.5235 = D.5233 & D.5234;
  if (D.5235 != 0) goto <D.4205>; else goto <D.4207>;
  <D.4207>:
  if (match != 0) goto <D.5236>; else goto <D.5237>;
  <D.5236>:
  D.5184 = j;
  return D.5184;
  <D.5237>:
  prev = prev + -1;
  <D.4209>:
  if (prev >= 0) goto <D.4208>; else goto <D.4210>;
  <D.4210>:
  D.5184 = -1;
  return D.5184;
}


pack_vector (int vector)
{
  short int * order.124;
  long unsigned int D.5240;
  long unsigned int D.5241;
  short int * D.5242;
  short int D.5243;
  short int * tally.125;
  long unsigned int D.5245;
  long unsigned int D.5246;
  short int * D.5247;
  short int D.5248;
  short int * * froms.126;
  long unsigned int D.5252;
  short int * * D.5253;
  short int * * tos.127;
  short int * * D.5255;
  int lowzero.128;
  short int D.5257;
  int D.5258;
  long unsigned int D.5259;
  long unsigned int D.5260;
  short int * D.5261;
  short int D.5262;
  int D.5263;
  int D.5264;
  int maxtable.129;
  long unsigned int D.5274;
  unsigned int D.5275;
  unsigned int D.5276;
  long unsigned int D.5277;
  short int * table.130;
  void * table.131;
  short int * check.132;
  void * check.133;
  long unsigned int D.5286;
  long unsigned int D.5287;
  short int * D.5288;
  short int * D.5289;
  long unsigned int D.5290;
  long unsigned int D.5291;
  short int * D.5292;
  short int D.5293;
  _Bool D.5296;
  _Bool D.5297;
  _Bool D.5298;
  short int * pos.134;
  short int * D.5300;
  short int D.5301;
  int D.5302;
  _Bool D.5305;
  _Bool D.5306;
  short int * D.5309;
  short int * D.5310;
  short int D.5311;
  int high.135;
  int lowzero.136;
  long unsigned int D.5316;
  long unsigned int D.5317;
  short int * D.5318;
  short int D.5319;
  int D.5320;
  register int i;
  register int j;
  register int k;
  register int l;
  register int t;
  register int loc;
  register int ok;
  register short int * from;
  register short int * to;
  int newmax;
  static const char __PRETTY_FUNCTION__[12] = "pack_vector";

  order.124 = order;
  D.5240 = (long unsigned int) vector;
  D.5241 = D.5240 * 2;
  D.5242 = order.124 + D.5241;
  D.5243 = *D.5242;
  i = (int) D.5243;
  tally.125 = tally;
  D.5245 = (long unsigned int) i;
  D.5246 = D.5245 * 2;
  D.5247 = tally.125 + D.5246;
  D.5248 = *D.5247;
  t = (int) D.5248;
  if (t == 0) goto <D.5249>; else goto <D.5250>;
  <D.5249>:
  __assert_fail ("t", "output.c", 568, &__PRETTY_FUNCTION__);
  <D.5250>:
  froms.126 = froms;
  D.5245 = (long unsigned int) i;
  D.5252 = D.5245 * 8;
  D.5253 = froms.126 + D.5252;
  from = *D.5253;
  tos.127 = tos;
  D.5245 = (long unsigned int) i;
  D.5252 = D.5245 * 8;
  D.5255 = tos.127 + D.5252;
  to = *D.5255;
  lowzero.128 = lowzero;
  D.5257 = *from;
  D.5258 = (int) D.5257;
  j = lowzero.128 - D.5258;
  k = 1;
  goto <D.4226>;
  <D.4225>:
  lowzero.128 = lowzero;
  D.5259 = (long unsigned int) k;
  D.5260 = D.5259 * 2;
  D.5261 = from + D.5260;
  D.5262 = *D.5261;
  D.5263 = (int) D.5262;
  D.5264 = lowzero.128 - D.5263;
  if (D.5264 > j) goto <D.5265>; else goto <D.5266>;
  <D.5265>:
  lowzero.128 = lowzero;
  D.5259 = (long unsigned int) k;
  D.5260 = D.5259 * 2;
  D.5261 = from + D.5260;
  D.5262 = *D.5261;
  D.5263 = (int) D.5262;
  j = lowzero.128 - D.5263;
  <D.5266>:
  k = k + 1;
  <D.4226>:
  if (k < t) goto <D.4225>; else goto <D.4227>;
  <D.4227>:
  <D.4250>:
  if (j == 0) goto <D.5267>; else goto <D.5268>;
  <D.5267>:
  // predicted unlikely by continue predictor.
  goto <D.4228>;
  <D.5268>:
  ok = 1;
  k = 0;
  goto <D.4239>;
  <D.4238>:
  D.5259 = (long unsigned int) k;
  D.5260 = D.5259 * 2;
  D.5261 = from + D.5260;
  D.5262 = *D.5261;
  D.5263 = (int) D.5262;
  loc = D.5263 + j;
  maxtable.129 = maxtable;
  if (loc >= maxtable.129) goto <D.5270>; else goto <D.5271>;
  <D.5270>:
  {
    extern int fatal ();
    extern int no_space ();

    if (loc > 32499) goto <D.5272>; else goto <D.5273>;
    <D.5272>:
    fatal ("maximum table size exceeded");
    <D.5273>:
    newmax = maxtable;
    <D.4230>:
    newmax = newmax + 200;
    if (newmax <= loc) goto <D.4230>; else goto <D.4231>;
    <D.4231>:
    D.5274 = (long unsigned int) newmax;
    D.5275 = (unsigned int) D.5274;
    D.5276 = D.5275 * 2;
    D.5277 = (long unsigned int) D.5276;
    table.130 = table;
    table.131 = realloc (table.130, D.5277);
    table = table.131;
    table.130 = table;
    if (table.130 == 0B) goto <D.5280>; else goto <D.5281>;
    <D.5280>:
    no_space ();
    <D.5281>:
    D.5274 = (long unsigned int) newmax;
    D.5275 = (unsigned int) D.5274;
    D.5276 = D.5275 * 2;
    D.5277 = (long unsigned int) D.5276;
    check.132 = check;
    check.133 = realloc (check.132, D.5277);
    check = check.133;
    check.132 = check;
    if (check.132 == 0B) goto <D.5284>; else goto <D.5285>;
    <D.5284>:
    no_space ();
    <D.5285>:
    l = maxtable;
    goto <D.4234>;
    <D.4233>:
    table.130 = table;
    D.5286 = (long unsigned int) l;
    D.5287 = D.5286 * 2;
    D.5288 = table.130 + D.5287;
    *D.5288 = 0;
    check.132 = check;
    D.5286 = (long unsigned int) l;
    D.5287 = D.5286 * 2;
    D.5289 = check.132 + D.5287;
    *D.5289 = -1;
    l = l + 1;
    <D.4234>:
    if (l < newmax) goto <D.4233>; else goto <D.4235>;
    <D.4235>:
    maxtable = newmax;
  }
  <D.5271>:
  check.132 = check;
  D.5290 = (long unsigned int) loc;
  D.5291 = D.5290 * 2;
  D.5292 = check.132 + D.5291;
  D.5293 = *D.5292;
  if (D.5293 != -1) goto <D.5294>; else goto <D.5295>;
  <D.5294>:
  ok = 0;
  <D.5295>:
  k = k + 1;
  <D.4239>:
  D.5296 = ok != 0;
  D.5297 = k < t;
  D.5298 = D.5296 & D.5297;
  if (D.5298 != 0) goto <D.4238>; else goto <D.4240>;
  <D.4240>:
  k = 0;
  goto <D.4242>;
  <D.4241>:
  pos.134 = pos;
  D.5259 = (long unsigned int) k;
  D.5260 = D.5259 * 2;
  D.5300 = pos.134 + D.5260;
  D.5301 = *D.5300;
  D.5302 = (int) D.5301;
  if (D.5302 == j) goto <D.5303>; else goto <D.5304>;
  <D.5303>:
  ok = 0;
  <D.5304>:
  k = k + 1;
  <D.4242>:
  D.5296 = ok != 0;
  D.5305 = k < vector;
  D.5306 = D.5296 & D.5305;
  if (D.5306 != 0) goto <D.4241>; else goto <D.4243>;
  <D.4243>:
  if (ok != 0) goto <D.5307>; else goto <D.5308>;
  <D.5307>:
  k = 0;
  goto <D.4245>;
  <D.4244>:
  D.5259 = (long unsigned int) k;
  D.5260 = D.5259 * 2;
  D.5261 = from + D.5260;
  D.5262 = *D.5261;
  D.5263 = (int) D.5262;
  loc = D.5263 + j;
  table.130 = table;
  D.5290 = (long unsigned int) loc;
  D.5291 = D.5290 * 2;
  D.5309 = table.130 + D.5291;
  D.5259 = (long unsigned int) k;
  D.5260 = D.5259 * 2;
  D.5310 = to + D.5260;
  D.5311 = *D.5310;
  *D.5309 = D.5311;
  check.132 = check;
  D.5290 = (long unsigned int) loc;
  D.5291 = D.5290 * 2;
  D.5292 = check.132 + D.5291;
  D.5259 = (long unsigned int) k;
  D.5260 = D.5259 * 2;
  D.5261 = from + D.5260;
  D.5262 = *D.5261;
  *D.5292 = D.5262;
  high.135 = high;
  if (loc > high.135) goto <D.5313>; else goto <D.5314>;
  <D.5313>:
  high = loc;
  <D.5314>:
  k = k + 1;
  <D.4245>:
  if (k < t) goto <D.4244>; else goto <D.4246>;
  <D.4246>:
  goto <D.4248>;
  <D.4247>:
  lowzero.128 = lowzero;
  lowzero.136 = lowzero.128 + 1;
  lowzero = lowzero.136;
  <D.4248>:
  check.132 = check;
  lowzero.128 = lowzero;
  D.5316 = (long unsigned int) lowzero.128;
  D.5317 = D.5316 * 2;
  D.5318 = check.132 + D.5317;
  D.5319 = *D.5318;
  if (D.5319 != -1) goto <D.4247>; else goto <D.4249>;
  <D.4249>:
  D.5320 = j;
  return D.5320;
  <D.5308>:
  <D.4228>:
  j = j + 1;
  goto <D.4250>;
}


output_base ()
{
  short int * base.137;
  short int D.5323;
  int D.5324;
  const char * iftmp.138;
  int csharp.139;
  int outline.140;
  int outline.141;
  long unsigned int D.5335;
  long unsigned int D.5336;
  short int * D.5337;
  short int D.5338;
  int D.5339;
  int nstates.142;
  int outline.143;
  long unsigned int D.5342;
  long unsigned int D.5343;
  short int * D.5344;
  short int D.5345;
  int D.5346;
  const char * iftmp.144;
  int D.5354;
  long unsigned int D.5355;
  long unsigned int D.5356;
  short int * D.5357;
  short int D.5358;
  int D.5359;
  const char * iftmp.145;
  int nvectors.146;
  int D.5368;
  register int i;
  register int j;

  base.137 = base;
  D.5323 = *base.137;
  D.5324 = (int) D.5323;
  csharp.139 = csharp;
  if (csharp.139 != 0) goto <D.5327>; else goto <D.5328>;
  <D.5327>:
  iftmp.138 = "readonly";
  goto <D.5329>;
  <D.5328>:
  iftmp.138 = "final";
  <D.5329>:
  printf ("  protected static %s short [] yySindex = {%13d,", iftmp.138, D.5324);
  j = 10;
  i = 1;
  goto <D.4256>;
  <D.4255>:
  if (j > 9) goto <D.5330>; else goto <D.5331>;
  <D.5330>:
  outline.140 = outline;
  outline.141 = outline.140 + 1;
  outline = outline.141;
  putchar (10);
  j = 1;
  goto <D.5334>;
  <D.5331>:
  j = j + 1;
  <D.5334>:
  base.137 = base;
  D.5335 = (long unsigned int) i;
  D.5336 = D.5335 * 2;
  D.5337 = base.137 + D.5336;
  D.5338 = *D.5337;
  D.5339 = (int) D.5338;
  printf ("%5d,", D.5339);
  i = i + 1;
  <D.4256>:
  nstates.142 = nstates;
  if (i < nstates.142) goto <D.4255>; else goto <D.4257>;
  <D.4257>:
  outline.140 = outline;
  outline.143 = outline.140 + 2;
  outline = outline.143;
  base.137 = base;
  nstates.142 = nstates;
  D.5342 = (long unsigned int) nstates.142;
  D.5343 = D.5342 * 2;
  D.5344 = base.137 + D.5343;
  D.5345 = *D.5344;
  D.5346 = (int) D.5345;
  csharp.139 = csharp;
  if (csharp.139 != 0) goto <D.5348>; else goto <D.5349>;
  <D.5348>:
  iftmp.144 = "readonly";
  goto <D.5350>;
  <D.5349>:
  iftmp.144 = "final";
  <D.5350>:
  printf ("\n  };\n  protected static %s short [] yyRindex = {%13d,", iftmp.144, D.5346);
  j = 10;
  nstates.142 = nstates;
  i = nstates.142 + 1;
  goto <D.4259>;
  <D.4258>:
  if (j > 9) goto <D.5351>; else goto <D.5352>;
  <D.5351>:
  outline.140 = outline;
  outline.141 = outline.140 + 1;
  outline = outline.141;
  putchar (10);
  j = 1;
  goto <D.5353>;
  <D.5352>:
  j = j + 1;
  <D.5353>:
  base.137 = base;
  D.5335 = (long unsigned int) i;
  D.5336 = D.5335 * 2;
  D.5337 = base.137 + D.5336;
  D.5338 = *D.5337;
  D.5339 = (int) D.5338;
  printf ("%5d,", D.5339);
  i = i + 1;
  <D.4259>:
  nstates.142 = nstates;
  D.5354 = nstates.142 * 2;
  if (D.5354 > i) goto <D.4258>; else goto <D.4260>;
  <D.4260>:
  outline.140 = outline;
  outline.143 = outline.140 + 2;
  outline = outline.143;
  base.137 = base;
  nstates.142 = nstates;
  D.5354 = nstates.142 * 2;
  D.5355 = (long unsigned int) D.5354;
  D.5356 = D.5355 * 2;
  D.5357 = base.137 + D.5356;
  D.5358 = *D.5357;
  D.5359 = (int) D.5358;
  csharp.139 = csharp;
  if (csharp.139 != 0) goto <D.5361>; else goto <D.5362>;
  <D.5361>:
  iftmp.145 = "readonly";
  goto <D.5363>;
  <D.5362>:
  iftmp.145 = "final";
  <D.5363>:
  printf ("\n  };\n  protected static %s short [] yyGindex = {%13d,", iftmp.145, D.5359);
  j = 10;
  nstates.142 = nstates;
  D.5354 = nstates.142 * 2;
  i = D.5354 + 1;
  goto <D.4262>;
  <D.4261>:
  if (j > 9) goto <D.5364>; else goto <D.5365>;
  <D.5364>:
  outline.140 = outline;
  outline.141 = outline.140 + 1;
  outline = outline.141;
  putchar (10);
  j = 1;
  goto <D.5366>;
  <D.5365>:
  j = j + 1;
  <D.5366>:
  base.137 = base;
  D.5335 = (long unsigned int) i;
  D.5336 = D.5335 * 2;
  D.5337 = base.137 + D.5336;
  D.5338 = *D.5337;
  D.5339 = (int) D.5338;
  printf ("%5d,", D.5339);
  i = i + 1;
  <D.4262>:
  nvectors.146 = nvectors;
  D.5368 = nvectors.146 + -1;
  if (D.5368 > i) goto <D.4261>; else goto <D.4263>;
  <D.4263>:
  outline.140 = outline;
  outline.143 = outline.140 + 2;
  outline = outline.143;
  printf ("\n  };\n");
  base.137 = base;
  free (base.137);
}


output_table ()
{
  short int * table.147;
  short int D.5370;
  int D.5371;
  const char * iftmp.148;
  int csharp.149;
  int outline.150;
  int outline.151;
  long unsigned int D.5382;
  long unsigned int D.5383;
  short int * D.5384;
  short int D.5385;
  int D.5386;
  int high.152;
  int outline.153;
  register int i;
  register int j;

  table.147 = table;
  D.5370 = *table.147;
  D.5371 = (int) D.5370;
  csharp.149 = csharp;
  if (csharp.149 != 0) goto <D.5374>; else goto <D.5375>;
  <D.5374>:
  iftmp.148 = "readonly";
  goto <D.5376>;
  <D.5375>:
  iftmp.148 = "final";
  <D.5376>:
  printf ("  protected static %s short [] yyTable = {%14d,", iftmp.148, D.5371);
  j = 10;
  i = 1;
  goto <D.4269>;
  <D.4268>:
  if (j > 9) goto <D.5377>; else goto <D.5378>;
  <D.5377>:
  outline.150 = outline;
  outline.151 = outline.150 + 1;
  outline = outline.151;
  putchar (10);
  j = 1;
  goto <D.5381>;
  <D.5378>:
  j = j + 1;
  <D.5381>:
  table.147 = table;
  D.5382 = (long unsigned int) i;
  D.5383 = D.5382 * 2;
  D.5384 = table.147 + D.5383;
  D.5385 = *D.5384;
  D.5386 = (int) D.5385;
  printf ("%5d,", D.5386);
  i = i + 1;
  <D.4269>:
  high.152 = high;
  if (i <= high.152) goto <D.4268>; else goto <D.4270>;
  <D.4270>:
  outline.150 = outline;
  outline.153 = outline.150 + 2;
  outline = outline.153;
  printf ("\n  };\n");
  table.147 = table;
  free (table.147);
}


output_check ()
{
  short int * check.154;
  short int D.5390;
  int D.5391;
  const char * iftmp.155;
  int csharp.156;
  int outline.157;
  int outline.158;
  long unsigned int D.5402;
  long unsigned int D.5403;
  short int * D.5404;
  short int D.5405;
  int D.5406;
  int high.159;
  int outline.160;
  register int i;
  register int j;

  check.154 = check;
  D.5390 = *check.154;
  D.5391 = (int) D.5390;
  csharp.156 = csharp;
  if (csharp.156 != 0) goto <D.5394>; else goto <D.5395>;
  <D.5394>:
  iftmp.155 = "readonly";
  goto <D.5396>;
  <D.5395>:
  iftmp.155 = "final";
  <D.5396>:
  printf ("  protected static %s short [] yyCheck = {%14d,", iftmp.155, D.5391);
  j = 10;
  i = 1;
  goto <D.4276>;
  <D.4275>:
  if (j > 9) goto <D.5397>; else goto <D.5398>;
  <D.5397>:
  outline.157 = outline;
  outline.158 = outline.157 + 1;
  outline = outline.158;
  putchar (10);
  j = 1;
  goto <D.5401>;
  <D.5398>:
  j = j + 1;
  <D.5401>:
  check.154 = check;
  D.5402 = (long unsigned int) i;
  D.5403 = D.5402 * 2;
  D.5404 = check.154 + D.5403;
  D.5405 = *D.5404;
  D.5406 = (int) D.5405;
  printf ("%5d,", D.5406);
  i = i + 1;
  <D.4276>:
  high.159 = high;
  if (i <= high.159) goto <D.4275>; else goto <D.4277>;
  <D.4277>:
  outline.157 = outline;
  outline.160 = outline.157 + 2;
  outline = outline.160;
  printf ("\n  };\n");
  check.154 = check;
  free (check.154);
}


is_C_identifier (char * name)
{
  char D.5409;
  const short unsigned int * * D.5412;
  const short unsigned int * D.5413;
  long unsigned int D.5414;
  long unsigned int D.5415;
  const short unsigned int * D.5416;
  short unsigned int D.5417;
  int D.5418;
  int D.5419;
  _Bool D.5422;
  _Bool D.5423;
  _Bool D.5424;
  int D.5427;
  int D.5428;
  register char * s;
  register int c;

  s = name;
  D.5409 = *s;
  c = (int) D.5409;
  if (c == 34) goto <D.5410>; else goto <D.5411>;
  <D.5410>:
  s = s + 1;
  D.5409 = *s;
  c = (int) D.5409;
  D.5412 = __ctype_b_loc ();
  D.5413 = *D.5412;
  D.5414 = (long unsigned int) c;
  D.5415 = D.5414 * 2;
  D.5416 = D.5413 + D.5415;
  D.5417 = *D.5416;
  D.5418 = (int) D.5417;
  D.5419 = D.5418 & 1024;
  if (D.5419 == 0) goto <D.5420>; else goto <D.5421>;
  <D.5420>:
  D.5422 = c != 95;
  D.5423 = c != 36;
  D.5424 = D.5422 & D.5423;
  if (D.5424 != 0) goto <D.5425>; else goto <D.5426>;
  <D.5425>:
  D.5427 = 0;
  return D.5427;
  <D.5426>:
  <D.5421>:
  goto <D.4284>;
  <D.4283>:
  D.5412 = __ctype_b_loc ();
  D.5413 = *D.5412;
  D.5414 = (long unsigned int) c;
  D.5415 = D.5414 * 2;
  D.5416 = D.5413 + D.5415;
  D.5417 = *D.5416;
  D.5418 = (int) D.5417;
  D.5428 = D.5418 & 8;
  if (D.5428 == 0) goto <D.5429>; else goto <D.5430>;
  <D.5429>:
  D.5422 = c != 95;
  D.5423 = c != 36;
  D.5424 = D.5422 & D.5423;
  if (D.5424 != 0) goto <D.5431>; else goto <D.5432>;
  <D.5431>:
  D.5427 = 0;
  return D.5427;
  <D.5432>:
  <D.5430>:
  <D.4284>:
  s = s + 1;
  D.5409 = *s;
  c = (int) D.5409;
  if (c != 34) goto <D.4283>; else goto <D.4285>;
  <D.4285>:
  D.5427 = 1;
  return D.5427;
  <D.5411>:
  D.5412 = __ctype_b_loc ();
  D.5413 = *D.5412;
  D.5414 = (long unsigned int) c;
  D.5415 = D.5414 * 2;
  D.5416 = D.5413 + D.5415;
  D.5417 = *D.5416;
  D.5418 = (int) D.5417;
  D.5419 = D.5418 & 1024;
  if (D.5419 == 0) goto <D.5433>; else goto <D.5434>;
  <D.5433>:
  D.5422 = c != 95;
  D.5423 = c != 36;
  D.5424 = D.5422 & D.5423;
  if (D.5424 != 0) goto <D.5435>; else goto <D.5436>;
  <D.5435>:
  D.5427 = 0;
  return D.5427;
  <D.5436>:
  <D.5434>:
  goto <D.4287>;
  <D.4286>:
  D.5412 = __ctype_b_loc ();
  D.5413 = *D.5412;
  D.5414 = (long unsigned int) c;
  D.5415 = D.5414 * 2;
  D.5416 = D.5413 + D.5415;
  D.5417 = *D.5416;
  D.5418 = (int) D.5417;
  D.5428 = D.5418 & 8;
  if (D.5428 == 0) goto <D.5437>; else goto <D.5438>;
  <D.5437>:
  D.5422 = c != 95;
  D.5423 = c != 36;
  D.5424 = D.5422 & D.5423;
  if (D.5424 != 0) goto <D.5439>; else goto <D.5440>;
  <D.5439>:
  D.5427 = 0;
  return D.5427;
  <D.5440>:
  <D.5438>:
  <D.4287>:
  s = s + 1;
  D.5409 = *s;
  c = (int) D.5409;
  if (c != 0) goto <D.4286>; else goto <D.4288>;
  <D.4288>:
  D.5427 = 1;
  return D.5427;
}


output_defines (char * prefix)
{
  char * * symbol_name.161;
  long unsigned int D.5443;
  long unsigned int D.5444;
  char * * D.5445;
  int D.5446;
  char D.5451;
  int outline.162;
  int outline.163;
  short int * symbol_value.164;
  long unsigned int D.5458;
  short int * D.5459;
  short int D.5460;
  int D.5461;
  int ntokens.165;
  short int * D.5463;
  short int D.5464;
  int D.5465;
  const char * iftmp.166;
  register int c;
  register int i;
  register char * s;

  i = 2;
  goto <D.4301>;
  <D.4300>:
  symbol_name.161 = symbol_name;
  D.5443 = (long unsigned int) i;
  D.5444 = D.5443 * 8;
  D.5445 = symbol_name.161 + D.5444;
  s = *D.5445;
  D.5446 = is_C_identifier (s);
  if (D.5446 != 0) goto <D.5447>; else goto <D.5448>;
  <D.5447>:
  if (prefix != 0B) goto <D.5449>; else goto <D.5450>;
  <D.5449>:
  printf ("  %s ", prefix);
  <D.5450>:
  D.5451 = *s;
  c = (int) D.5451;
  if (c == 34) goto <D.5452>; else goto <D.5453>;
  <D.5452>:
  goto <D.4296>;
  <D.4295>:
  putchar (c);
  <D.4296>:
  s = s + 1;
  D.5451 = *s;
  c = (int) D.5451;
  if (c != 34) goto <D.4295>; else goto <D.4297>;
  <D.4297>:
  goto <D.5454>;
  <D.5453>:
  <D.4298>:
  putchar (c);
  s = s + 1;
  D.5451 = *s;
  c = (int) D.5451;
  if (c != 0) goto <D.4298>; else goto <D.4299>;
  <D.4299>:
  <D.5454>:
  outline.162 = outline;
  outline.163 = outline.162 + 1;
  outline = outline.163;
  symbol_value.164 = symbol_value;
  D.5443 = (long unsigned int) i;
  D.5458 = D.5443 * 2;
  D.5459 = symbol_value.164 + D.5458;
  D.5460 = *D.5459;
  D.5461 = (int) D.5460;
  printf (" = %d%s\n", D.5461, ";");
  <D.5448>:
  i = i + 1;
  <D.4301>:
  ntokens.165 = ntokens;
  if (i < ntokens.165) goto <D.4300>; else goto <D.4302>;
  <D.4302>:
  outline.162 = outline;
  outline.163 = outline.162 + 1;
  outline = outline.163;
  symbol_value.164 = symbol_value;
  D.5463 = symbol_value.164 + 2;
  D.5464 = *D.5463;
  D.5465 = (int) D.5464;
  if (prefix != 0B) goto <D.5467>; else goto <D.5468>;
  <D.5467>:
  iftmp.166 = prefix;
  goto <D.5469>;
  <D.5468>:
  iftmp.166 = "";
  <D.5469>:
  printf ("  %s yyErrorCode = %d%s\n", iftmp.166, D.5465, ";");
}


output_stored_text (struct FILE * file, char * name)
{
  int outline.167;
  int outline.168;
  char * default_line_format.169;
  register int c;
  register struct FILE * in;
  extern int open_error ();

  fflush (file);
  in = fopen (name, "r");
  if (in == 0B) goto <D.5470>; else goto <D.5471>;
  <D.5470>:
  open_error (name);
  <D.5471>:
  c = _IO_getc (in);
  if (c != -1) goto <D.5472>; else goto <D.5473>;
  <D.5472>:
  if (c == 10) goto <D.5474>; else goto <D.5475>;
  <D.5474>:
  outline.167 = outline;
  outline.168 = outline.167 + 1;
  outline = outline.168;
  <D.5475>:
  putchar (c);
  goto <D.4311>;
  <D.4310>:
  if (c == 10) goto <D.5478>; else goto <D.5479>;
  <D.5478>:
  outline.167 = outline;
  outline.168 = outline.167 + 1;
  outline = outline.168;
  <D.5479>:
  putchar (c);
  <D.4311>:
  c = _IO_getc (in);
  if (c != -1) goto <D.4310>; else goto <D.4312>;
  <D.4312>:
  outline.167 = outline;
  outline.168 = outline.167 + 1;
  outline = outline.168;
  outline.167 = outline;
  outline.168 = outline.167 + 1;
  default_line_format.169 = default_line_format;
  printf (default_line_format.169, outline.168);
  <D.5473>:
  fclose (in);
}


output_debug ()
{
  char * iftmp.170;
  char tflag.171;
  int outline.172;
  int outline.173;
  short int final_state.174;
  int D.5489;
  const char * iftmp.175;
  int csharp.176;
  const char * iftmp.177;
  const char * iftmp.178;
  char * * symbol_name.179;
  short int * rlhs.180;
  long unsigned int D.5505;
  long unsigned int D.5506;
  short int * D.5507;
  short int D.5508;
  long unsigned int D.5509;
  long unsigned int D.5510;
  char * * D.5511;
  char * D.5512;
  short int * rrhs.181;
  short int * D.5514;
  short int D.5515;
  short int * ritem.182;
  long unsigned int D.5517;
  long unsigned int D.5518;
  short int * D.5519;
  short int D.5520;
  long unsigned int D.5521;
  long unsigned int D.5522;
  char * * D.5523;
  char D.5524;
  char * D.5529;
  char D.5530;
  int D.5534;
  int D.5536;
  char * D.5545;
  char D.5546;
  int D.5550;
  int nrules.183;
  short int * symbol_value.184;
  short int * D.5555;
  short int D.5556;
  int D.5557;
  int ntokens.185;
  const char * iftmp.186;
  int D.5565;
  long unsigned int D.5566;
  unsigned int D.5567;
  unsigned int D.5568;
  long unsigned int D.5569;
  long unsigned int D.5572;
  char * * D.5573;
  long unsigned int D.5574;
  long unsigned int D.5575;
  char * * D.5576;
  char * * D.5577;
  char * D.5578;
  struct _IO_FILE * stdout.187;
  long unsigned int D.5617;
  unsigned int D.5618;
  unsigned int D.5619;
  int outline.188;
  register int i;
  register int j;
  register int k;
  register int max;
  char * * symnam;
  char * s;
  char * prefix;
  extern int no_space ();

  tflag.171 = tflag;
  if (tflag.171 != 0) goto <D.5483>; else goto <D.5484>;
  <D.5483>:
  iftmp.170 = "";
  goto <D.5485>;
  <D.5484>:
  iftmp.170 = "//t";
  <D.5485>:
  prefix = iftmp.170;
  outline.172 = outline;
  outline.173 = outline.172 + 1;
  outline = outline.173;
  final_state.174 = final_state;
  D.5489 = (int) final_state.174;
  csharp.176 = csharp;
  if (csharp.176 != 0) goto <D.5492>; else goto <D.5493>;
  <D.5492>:
  iftmp.175 = "const";
  goto <D.5494>;
  <D.5493>:
  iftmp.175 = "static final";
  <D.5494>:
  printf ("  protected %s int yyFinal = %d;\n", iftmp.175, D.5489);
  outline.172 = outline;
  outline.173 = outline.172 + 1;
  outline = outline.173;
  printf ("%s // Put this array into a separate class so it is only initialized if debugging is actually used\n", prefix);
  printf ("%s // Use MarshalByRefObject to disable inlining\n", prefix);
  csharp.176 = csharp;
  if (csharp.176 != 0) goto <D.5496>; else goto <D.5497>;
  <D.5496>:
  iftmp.177 = ": MarshalByRefObject";
  goto <D.5498>;
  <D.5497>:
  iftmp.177 = "";
  <D.5498>:
  printf ("%s class YYRules %s {\n", prefix, iftmp.177);
  csharp.176 = csharp;
  if (csharp.176 != 0) goto <D.5500>; else goto <D.5501>;
  <D.5500>:
  iftmp.178 = "readonly";
  goto <D.5502>;
  <D.5501>:
  iftmp.178 = "final";
  <D.5502>:
  printf ("%s  public static %s string [] yyRule = {\n", prefix, iftmp.178);
  i = 2;
  goto <D.4333>;
  <D.4332>:
  symbol_name.179 = symbol_name;
  rlhs.180 = rlhs;
  D.5505 = (long unsigned int) i;
  D.5506 = D.5505 * 2;
  D.5507 = rlhs.180 + D.5506;
  D.5508 = *D.5507;
  D.5509 = (long unsigned int) D.5508;
  D.5510 = D.5509 * 8;
  D.5511 = symbol_name.179 + D.5510;
  D.5512 = *D.5511;
  printf ("%s    \"%s :", prefix, D.5512);
  rrhs.181 = rrhs;
  D.5505 = (long unsigned int) i;
  D.5506 = D.5505 * 2;
  D.5514 = rrhs.181 + D.5506;
  D.5515 = *D.5514;
  j = (int) D.5515;
  goto <D.4330>;
  <D.4329>:
  symbol_name.179 = symbol_name;
  ritem.182 = ritem;
  D.5517 = (long unsigned int) j;
  D.5518 = D.5517 * 2;
  D.5519 = ritem.182 + D.5518;
  D.5520 = *D.5519;
  D.5521 = (long unsigned int) D.5520;
  D.5522 = D.5521 * 8;
  D.5523 = symbol_name.179 + D.5522;
  s = *D.5523;
  D.5524 = *s;
  if (D.5524 == 34) goto <D.5525>; else goto <D.5526>;
  <D.5525>:
  printf (" \\\"");
  goto <D.4324>;
  <D.4323>:
  D.5524 = *s;
  if (D.5524 == 92) goto <D.5527>; else goto <D.5528>;
  <D.5527>:
  D.5529 = s + 1;
  D.5530 = *D.5529;
  if (D.5530 == 92) goto <D.5531>; else goto <D.5532>;
  <D.5531>:
  printf ("\\\\\\\\");
  goto <D.5533>;
  <D.5532>:
  D.5529 = s + 1;
  D.5530 = *D.5529;
  D.5534 = (int) D.5530;
  printf ("\\\\%c", D.5534);
  <D.5533>:
  s = s + 1;
  goto <D.5535>;
  <D.5528>:
  D.5524 = *s;
  D.5536 = (int) D.5524;
  putchar (D.5536);
  <D.5535>:
  <D.4324>:
  s = s + 1;
  D.5524 = *s;
  if (D.5524 != 34) goto <D.4323>; else goto <D.4325>;
  <D.4325>:
  printf ("\\\"");
  goto <D.5537>;
  <D.5526>:
  D.5524 = *s;
  if (D.5524 == 39) goto <D.5538>; else goto <D.5539>;
  <D.5538>:
  D.5529 = s + 1;
  D.5530 = *D.5529;
  if (D.5530 == 34) goto <D.5540>; else goto <D.5541>;
  <D.5540>:
  printf (" \'\\\"\'");
  goto <D.5542>;
  <D.5541>:
  D.5529 = s + 1;
  D.5530 = *D.5529;
  if (D.5530 == 92) goto <D.5543>; else goto <D.5544>;
  <D.5543>:
  D.5545 = s + 2;
  D.5546 = *D.5545;
  if (D.5546 == 92) goto <D.5547>; else goto <D.5548>;
  <D.5547>:
  printf (" \'\\\\\\\\");
  goto <D.5549>;
  <D.5548>:
  D.5545 = s + 2;
  D.5546 = *D.5545;
  D.5550 = (int) D.5546;
  printf (" \'\\\\%c", D.5550);
  <D.5549>:
  s = s + 2;
  goto <D.4327>;
  <D.4326>:
  D.5524 = *s;
  D.5536 = (int) D.5524;
  putchar (D.5536);
  <D.4327>:
  s = s + 1;
  D.5524 = *s;
  if (D.5524 != 39) goto <D.4326>; else goto <D.4328>;
  <D.4328>:
  putchar (39);
  goto <D.5551>;
  <D.5544>:
  D.5529 = s + 1;
  D.5530 = *D.5529;
  D.5534 = (int) D.5530;
  printf (" \'%c\'", D.5534);
  <D.5551>:
  <D.5542>:
  goto <D.5552>;
  <D.5539>:
  printf (" %s", s);
  <D.5552>:
  <D.5537>:
  j = j + 1;
  <D.4330>:
  ritem.182 = ritem;
  D.5517 = (long unsigned int) j;
  D.5518 = D.5517 * 2;
  D.5519 = ritem.182 + D.5518;
  D.5520 = *D.5519;
  if (D.5520 > 0) goto <D.4329>; else goto <D.4331>;
  <D.4331>:
  outline.172 = outline;
  outline.173 = outline.172 + 1;
  outline = outline.173;
  printf ("\",\n");
  i = i + 1;
  <D.4333>:
  nrules.183 = nrules;
  if (i < nrules.183) goto <D.4332>; else goto <D.4334>;
  <D.4334>:
  outline.172 = outline;
  outline.173 = outline.172 + 1;
  outline = outline.173;
  printf ("%s  };\n", prefix);
  printf ("%s public static string getRule (int index) {\n", prefix);
  printf ("%s    return yyRule [index];\n", prefix);
  printf ("%s }\n", prefix);
  printf ("%s}\n", prefix);
  max = 0;
  i = 2;
  goto <D.4336>;
  <D.4335>:
  symbol_value.184 = symbol_value;
  D.5505 = (long unsigned int) i;
  D.5506 = D.5505 * 2;
  D.5555 = symbol_value.184 + D.5506;
  D.5556 = *D.5555;
  D.5557 = (int) D.5556;
  if (D.5557 > max) goto <D.5558>; else goto <D.5559>;
  <D.5558>:
  symbol_value.184 = symbol_value;
  D.5505 = (long unsigned int) i;
  D.5506 = D.5505 * 2;
  D.5555 = symbol_value.184 + D.5506;
  D.5556 = *D.5555;
  max = (int) D.5556;
  <D.5559>:
  i = i + 1;
  <D.4336>:
  ntokens.185 = ntokens;
  if (i < ntokens.185) goto <D.4335>; else goto <D.4337>;
  <D.4337>:
  csharp.176 = csharp;
  if (csharp.176 != 0) goto <D.5562>; else goto <D.5563>;
  <D.5562>:
  iftmp.186 = "readonly";
  goto <D.5564>;
  <D.5563>:
  iftmp.186 = "final";
  <D.5564>:
  printf ("  protected static %s string [] yyNames = {", iftmp.186);
  D.5565 = max + 1;
  D.5566 = (long unsigned int) D.5565;
  D.5567 = (unsigned int) D.5566;
  D.5568 = D.5567 * 8;
  D.5569 = (long unsigned int) D.5568;
  symnam = malloc (D.5569);
  if (symnam == 0B) goto <D.5570>; else goto <D.5571>;
  <D.5570>:
  no_space ();
  <D.5571>:
  i = 0;
  goto <D.4339>;
  <D.4338>:
  D.5505 = (long unsigned int) i;
  D.5572 = D.5505 * 8;
  D.5573 = symnam + D.5572;
  *D.5573 = 0B;
  i = i + 1;
  <D.4339>:
  if (i < max) goto <D.4338>; else goto <D.4340>;
  <D.4340>:
  ntokens.185 = ntokens;
  i = ntokens.185 + -1;
  goto <D.4342>;
  <D.4341>:
  symbol_value.184 = symbol_value;
  D.5505 = (long unsigned int) i;
  D.5506 = D.5505 * 2;
  D.5555 = symbol_value.184 + D.5506;
  D.5556 = *D.5555;
  D.5574 = (long unsigned int) D.5556;
  D.5575 = D.5574 * 8;
  D.5576 = symnam + D.5575;
  symbol_name.179 = symbol_name;
  D.5505 = (long unsigned int) i;
  D.5572 = D.5505 * 8;
  D.5577 = symbol_name.179 + D.5572;
  D.5578 = *D.5577;
  *D.5576 = D.5578;
  i = i + -1;
  <D.4342>:
  if (i > 1) goto <D.4341>; else goto <D.4343>;
  <D.4343>:
  *symnam = "end-of-file";
  j = 70;
  stdout.187 = stdout;
  __builtin_fwrite ("    ", 1, 4, stdout.187);
  i = 0;
  goto <D.4359>;
  <D.4358>:
  D.5505 = (long unsigned int) i;
  D.5572 = D.5505 * 8;
  D.5573 = symnam + D.5572;
  s = *D.5573;
  if (s != 0B) goto <D.5580>; else goto <D.5581>;
  <D.5580>:
  D.5524 = *s;
  if (D.5524 == 34) goto <D.5582>; else goto <D.5583>;
  <D.5582>:
  k = 7;
  goto <D.4345>;
  <D.4344>:
  k = k + 1;
  D.5524 = *s;
  if (D.5524 == 92) goto <D.5584>; else goto <D.5585>;
  <D.5584>:
  k = k + 2;
  s = s + 1;
  D.5524 = *s;
  if (D.5524 == 92) goto <D.5586>; else goto <D.5587>;
  <D.5586>:
  k = k + 1;
  <D.5587>:
  <D.5585>:
  <D.4345>:
  s = s + 1;
  D.5524 = *s;
  if (D.5524 != 34) goto <D.4344>; else goto <D.4346>;
  <D.4346>:
  j = j + k;
  if (j > 70) goto <D.5588>; else goto <D.5589>;
  <D.5588>:
  outline.172 = outline;
  outline.173 = outline.172 + 1;
  outline = outline.173;
  printf ("\n    ");
  j = k;
  <D.5589>:
  printf ("\"\\\"");
  D.5505 = (long unsigned int) i;
  D.5572 = D.5505 * 8;
  D.5573 = symnam + D.5572;
  s = *D.5573;
  goto <D.4348>;
  <D.4347>:
  D.5524 = *s;
  if (D.5524 == 92) goto <D.5590>; else goto <D.5591>;
  <D.5590>:
  printf ("\\\\");
  s = s + 1;
  D.5524 = *s;
  if (D.5524 == 92) goto <D.5592>; else goto <D.5593>;
  <D.5592>:
  printf ("\\\\");
  goto <D.5594>;
  <D.5593>:
  D.5524 = *s;
  D.5536 = (int) D.5524;
  putchar (D.5536);
  <D.5594>:
  goto <D.5595>;
  <D.5591>:
  D.5524 = *s;
  D.5536 = (int) D.5524;
  putchar (D.5536);
  <D.5595>:
  <D.4348>:
  s = s + 1;
  D.5524 = *s;
  if (D.5524 != 34) goto <D.4347>; else goto <D.4349>;
  <D.4349>:
  printf ("\\\"\",");
  goto <D.5596>;
  <D.5583>:
  D.5524 = *s;
  if (D.5524 == 39) goto <D.5597>; else goto <D.5598>;
  <D.5597>:
  D.5529 = s + 1;
  D.5530 = *D.5529;
  if (D.5530 == 34) goto <D.5599>; else goto <D.5600>;
  <D.5599>:
  j = j + 7;
  if (j > 70) goto <D.5601>; else goto <D.5602>;
  <D.5601>:
  outline.172 = outline;
  outline.173 = outline.172 + 1;
  outline = outline.173;
  printf ("\n    ");
  j = 7;
  <D.5602>:
  printf ("\"\'\\\"\'\",");
  goto <D.5603>;
  <D.5600>:
  k = 5;
  goto <D.4351>;
  <D.4350>:
  k = k + 1;
  D.5524 = *s;
  if (D.5524 == 92) goto <D.5604>; else goto <D.5605>;
  <D.5604>:
  k = k + 2;
  s = s + 1;
  D.5524 = *s;
  if (D.5524 == 92) goto <D.5606>; else goto <D.5607>;
  <D.5606>:
  k = k + 1;
  <D.5607>:
  <D.5605>:
  <D.4351>:
  s = s + 1;
  D.5524 = *s;
  if (D.5524 != 39) goto <D.4350>; else goto <D.4352>;
  <D.4352>:
  j = j + k;
  if (j > 70) goto <D.5608>; else goto <D.5609>;
  <D.5608>:
  outline.172 = outline;
  outline.173 = outline.172 + 1;
  outline = outline.173;
  printf ("\n    ");
  j = k;
  <D.5609>:
  printf ("\"\'");
  D.5505 = (long unsigned int) i;
  D.5572 = D.5505 * 8;
  D.5573 = symnam + D.5572;
  s = *D.5573;
  goto <D.4354>;
  <D.4353>:
  D.5524 = *s;
  if (D.5524 == 92) goto <D.5610>; else goto <D.5611>;
  <D.5610>:
  printf ("\\\\");
  s = s + 1;
  D.5524 = *s;
  if (D.5524 == 92) goto <D.5612>; else goto <D.5613>;
  <D.5612>:
  printf ("\\\\");
  goto <D.5614>;
  <D.5613>:
  D.5524 = *s;
  D.5536 = (int) D.5524;
  putchar (D.5536);
  <D.5614>:
  goto <D.5615>;
  <D.5611>:
  D.5524 = *s;
  D.5536 = (int) D.5524;
  putchar (D.5536);
  <D.5615>:
  <D.4354>:
  s = s + 1;
  D.5524 = *s;
  if (D.5524 != 39) goto <D.4353>; else goto <D.4355>;
  <D.4355>:
  printf ("\'\",");
  <D.5603>:
  goto <D.5616>;
  <D.5598>:
  D.5617 = strlen (s);
  D.5618 = (unsigned int) D.5617;
  D.5619 = D.5618 + 3;
  k = (int) D.5619;
  j = j + k;
  if (j > 70) goto <D.5620>; else goto <D.5621>;
  <D.5620>:
  outline.172 = outline;
  outline.173 = outline.172 + 1;
  outline = outline.173;
  printf ("\n    ");
  j = k;
  <D.5621>:
  putchar (34);
  <D.4356>:
  D.5524 = *s;
  D.5536 = (int) D.5524;
  putchar (D.5536);
  s = s + 1;
  D.5524 = *s;
  if (D.5524 != 0) goto <D.4356>; else goto <D.4357>;
  <D.4357>:
  printf ("\",");
  <D.5616>:
  <D.5596>:
  goto <D.5622>;
  <D.5581>:
  j = j + 5;
  if (j > 70) goto <D.5623>; else goto <D.5624>;
  <D.5623>:
  outline.172 = outline;
  outline.173 = outline.172 + 1;
  outline = outline.173;
  printf ("\n    ");
  j = 5;
  <D.5624>:
  printf ("null,");
  <D.5622>:
  i = i + 1;
  <D.4359>:
  if (i <= max) goto <D.4358>; else goto <D.4360>;
  <D.4360>:
  outline.172 = outline;
  outline.188 = outline.172 + 2;
  outline = outline.188;
  printf ("\n  };\n");
  free (symnam);
}


output_trailing_text ()
{
  char * line.189;
  char * cptr.190;
  char D.5630;
  int lineno.191;
  int lineno.192;
  int outline.193;
  int outline.194;
  char * input_file_name.195;
  char * line_format.196;
  char * cptr.197;
  char * default_line_format.198;
  register int c;
  register int last;
  register struct FILE * in;

  line.189 = line;
  if (line.189 == 0B) goto <D.5627>; else goto <D.5628>;
  <D.5627>:
  return;
  <D.5628>:
  in = input_file;
  cptr.190 = cptr;
  D.5630 = *cptr.190;
  c = (int) D.5630;
  if (c == 10) goto <D.5631>; else goto <D.5632>;
  <D.5631>:
  lineno.191 = lineno;
  lineno.192 = lineno.191 + 1;
  lineno = lineno.192;
  c = _IO_getc (in);
  if (c == -1) goto <D.5635>; else goto <D.5636>;
  <D.5635>:
  return;
  <D.5636>:
  outline.193 = outline;
  outline.194 = outline.193 + 1;
  outline = outline.194;
  input_file_name.195 = input_file_name;
  lineno.191 = lineno;
  line_format.196 = line_format;
  printf (line_format.196, lineno.191, input_file_name.195);
  if (c == 10) goto <D.5641>; else goto <D.5642>;
  <D.5641>:
  outline.193 = outline;
  outline.194 = outline.193 + 1;
  outline = outline.194;
  <D.5642>:
  putchar (c);
  last = c;
  goto <D.5643>;
  <D.5632>:
  outline.193 = outline;
  outline.194 = outline.193 + 1;
  outline = outline.194;
  input_file_name.195 = input_file_name;
  lineno.191 = lineno;
  line_format.196 = line_format;
  printf (line_format.196, lineno.191, input_file_name.195);
  <D.4367>:
  putchar (c);
  cptr.190 = cptr;
  cptr.197 = cptr.190 + 1;
  cptr = cptr.197;
  cptr.190 = cptr;
  D.5630 = *cptr.190;
  c = (int) D.5630;
  if (c != 10) goto <D.4367>; else goto <D.4368>;
  <D.4368>:
  outline.193 = outline;
  outline.194 = outline.193 + 1;
  outline = outline.194;
  putchar (10);
  last = 10;
  <D.5643>:
  goto <D.4370>;
  <D.4369>:
  if (c == 10) goto <D.5645>; else goto <D.5646>;
  <D.5645>:
  outline.193 = outline;
  outline.194 = outline.193 + 1;
  outline = outline.194;
  <D.5646>:
  putchar (c);
  last = c;
  <D.4370>:
  c = _IO_getc (in);
  if (c != -1) goto <D.4369>; else goto <D.4371>;
  <D.4371>:
  if (last != 10) goto <D.5647>; else goto <D.5648>;
  <D.5647>:
  outline.193 = outline;
  outline.194 = outline.193 + 1;
  outline = outline.194;
  putchar (10);
  <D.5648>:
  outline.193 = outline;
  outline.194 = outline.193 + 1;
  outline = outline.194;
  outline.193 = outline;
  outline.194 = outline.193 + 1;
  default_line_format.198 = default_line_format;
  printf (default_line_format.198, outline.194);
}


output_semantic_actions ()
{
  struct FILE * action_file.199;
  char * action_file_name.200;
  struct FILE * action_file.201;
  int outline.202;
  int outline.203;
  char * default_line_format.204;
  register int c;
  register int last;
  extern int open_error ();

  action_file.199 = action_file;
  fclose (action_file.199);
  action_file_name.200 = action_file_name;
  action_file.201 = fopen (action_file_name.200, "r");
  action_file = action_file.201;
  action_file.199 = action_file;
  if (action_file.199 == 0B) goto <D.5654>; else goto <D.5655>;
  <D.5654>:
  action_file_name.200 = action_file_name;
  open_error (action_file_name.200);
  <D.5655>:
  action_file.199 = action_file;
  c = _IO_getc (action_file.199);
  if (c == -1) goto <D.5656>; else goto <D.5657>;
  <D.5656>:
  return;
  <D.5657>:
  last = c;
  if (c == 10) goto <D.5658>; else goto <D.5659>;
  <D.5658>:
  outline.202 = outline;
  outline.203 = outline.202 + 1;
  outline = outline.203;
  <D.5659>:
  putchar (c);
  goto <D.4377>;
  <D.4376>:
  if (c == 10) goto <D.5662>; else goto <D.5663>;
  <D.5662>:
  outline.202 = outline;
  outline.203 = outline.202 + 1;
  outline = outline.203;
  <D.5663>:
  putchar (c);
  last = c;
  <D.4377>:
  action_file.199 = action_file;
  c = _IO_getc (action_file.199);
  if (c != -1) goto <D.4376>; else goto <D.4378>;
  <D.4378>:
  if (last != 10) goto <D.5664>; else goto <D.5665>;
  <D.5664>:
  outline.202 = outline;
  outline.203 = outline.202 + 1;
  outline = outline.203;
  putchar (10);
  <D.5665>:
  outline.202 = outline;
  outline.203 = outline.202 + 1;
  outline = outline.203;
  outline.202 = outline;
  outline.203 = outline.202 + 1;
  default_line_format.204 = default_line_format;
  printf (default_line_format.204, outline.203);
}


free_itemsets ()
{
  struct core * * state_table.205;
  register struct core * cp;
  register struct core * next;

  state_table.205 = state_table;
  free (state_table.205);
  cp = first_state;
  goto <D.4385>;
  <D.4384>:
  next = cp->next;
  free (cp);
  cp = next;
  <D.4385>:
  if (cp != 0B) goto <D.4384>; else goto <D.4386>;
  <D.4386>:
}


free_shifts ()
{
  struct shifts * * shift_table.206;
  register struct shifts * sp;
  register struct shifts * next;

  shift_table.206 = shift_table;
  free (shift_table.206);
  sp = first_shift;
  goto <D.4392>;
  <D.4391>:
  next = sp->next;
  free (sp);
  sp = next;
  <D.4392>:
  if (sp != 0B) goto <D.4391>; else goto <D.4393>;
  <D.4393>:
}


free_reductions ()
{
  struct reductions * * reduction_table.207;
  register struct reductions * rp;
  register struct reductions * next;

  reduction_table.207 = reduction_table;
  free (reduction_table.207);
  rp = first_reduction;
  goto <D.4399>;
  <D.4398>:
  next = rp->next;
  free (rp);
  rp = next;
  <D.4399>:
  if (rp != 0B) goto <D.4398>; else goto <D.4400>;
  <D.4400>:
}


