original_string: function Reprint()
      {
          printf("// Reprint of input file \"%s\".\n// Symbols:\n", $this->filename);
          $maxlen = 10;
          for ($i = 0; $i < $this->nsymbol; $i++) {
              $sp = $this->symbols[$i];
              $len = strlen($sp->name);
              if ($len > $maxlen ) {
                  $maxlen = $len;
              }
          }
          $ncolumns = 76 / ($maxlen + 5);
          if ($ncolumns < 1) {
              $ncolumns = 1;
          }
          $skip = ($this->nsymbol + $ncolumns - 1) / $ncolumns;
          for ($i = 0; $i < $skip; $i++) {
              print "//";
              for ($j = $i; $j < $this->nsymbol; $j += $skip) {
                  $sp = $this->symbols[$j];
                  //assert( sp->index==j );
                  printf(" %3d %-${maxlen}.${maxlen}s", $j, $sp->name);
              }
              print "\n";
          }
          for ($rp = $this->rule; $rp; $rp = $rp->next) {
              printf("%s", $rp->lhs->name);
              /*if ($rp->lhsalias) {
                  printf("(%s)", $rp->lhsalias);
              }*/
              print " ::=";
              for ($i = 0; $i < $rp->nrhs; $i++) {
                  $sp = $rp->rhs[$i];
                  printf(" %s", $sp->name);
                  if ($sp->type == PHP_ParserGenerator_Symbol::MULTITERMINAL) {
                      for ($j = 1; $j < $sp->nsubsym; $j++) {
                          printf("|%s", $sp->subsym[$j]->name);
                      }
                  }
                  /*if ($rp->rhsalias[$i]) {
                      printf("(%s)", $rp->rhsalias[$i]);
                  }*/
              }
              print ".";
              if ($rp->precsym) {
                  printf(" [%s]", $rp->precsym->name);
              }
              /*if ($rp->code) {
                  print "\n    " . $rp->code);
              }*/
              print "\n";
          }
      }
code: function Reprint()
      {
          printf("// Reprint of input file \"%s\".\n// Symbols:\n", $this->filename);
          $maxlen = 10;
          for ($i = 0; $i < $this->nsymbol; $i++) {
              $sp = $this->symbols[$i];
              $len = strlen($sp->name);
              if ($len > $maxlen ) {
                  $maxlen = $len;
              }
          }
          $ncolumns = 76 / ($maxlen + 5);
          if ($ncolumns < 1) {
              $ncolumns = 1;
          }
          $skip = ($this->nsymbol + $ncolumns - 1) / $ncolumns;
          for ($i = 0; $i < $skip; $i++) {
              print "//";
              for ($j = $i; $j < $this->nsymbol; $j += $skip) {
                  $sp = $this->symbols[$j];
                  //assert( sp->index==j );
                  printf(" %3d %-${maxlen}.${maxlen}s", $j, $sp->name);
              }
              print "\n";
          }
          for ($rp = $this->rule; $rp; $rp = $rp->next) {
              printf("%s", $rp->lhs->name);
              /*if ($rp->lhsalias) {
                  printf("(%s)", $rp->lhsalias);
              }*/
              print " ::=";
              for ($i = 0; $i < $rp->nrhs; $i++) {
                  $sp = $rp->rhs[$i];
                  printf(" %s", $sp->name);
                  if ($sp->type == PHP_ParserGenerator_Symbol::MULTITERMINAL) {
                      for ($j = 1; $j < $sp->nsubsym; $j++) {
                          printf("|%s", $sp->subsym[$j]->name);
                      }
                  }
                  /*if ($rp->rhsalias[$i]) {
                      printf("(%s)", $rp->rhsalias[$i]);
                  }*/
              }
              print ".";
              if ($rp->precsym) {
                  printf(" [%s]", $rp->precsym->name);
              }
              /*if ($rp->code) {
                  print "\n    " . $rp->code);
              }*/
              print "\n";
          }
      }
code_tokens: function Reprint ( ) { printf ( "// Reprint of input file \"%s\".\n// Symbols:\n" , $ this -> filename ) ; $ maxlen = 10 ; for ( $ i = 0 ; $ i < $ this -> nsymbol ; $ i ++ ) { $ sp = $ this -> symbols [ $ i ] ; $ len = strlen ( $ sp -> name ) ; if ( $ len > $ maxlen ) { $ maxlen = $ len ; } } $ ncolumns = 76 / ( $ maxlen + 5 ) ; if ( $ ncolumns < 1 ) { $ ncolumns = 1 ; } $ skip = ( $ this -> nsymbol + $ ncolumns - 1 ) / $ ncolumns ; for ( $ i = 0 ; $ i < $ skip ; $ i ++ ) { print "//" ; for ( $ j = $ i ; $ j < $ this -> nsymbol ; $ j += $ skip ) { $ sp = $ this -> symbols [ $ j ] ; //assert( sp->index==j ); printf ( " %3d %-${maxlen}.${maxlen}s" , $ j , $ sp -> name ) ; } print "\n" ; } for ( $ rp = $ this -> rule ; $ rp ; $ rp = $ rp -> next ) { printf ( "%s" , $ rp -> lhs -> name ) ; /*if ($rp->lhsalias) {
                  printf("(%s)", $rp->lhsalias);
              }*/ print " ::=" ; for ( $ i = 0 ; $ i < $ rp -> nrhs ; $ i ++ ) { $ sp = $ rp -> rhs [ $ i ] ; printf ( " %s" , $ sp -> name ) ; if ( $ sp -> type == PHP_ParserGenerator_Symbol :: MULTITERMINAL ) { for ( $ j = 1 ; $ j < $ sp -> nsubsym ; $ j ++ ) { printf ( "|%s" , $ sp -> subsym [ $ j ] -> name ) ; } } /*if ($rp->rhsalias[$i]) {
                      printf("(%s)", $rp->rhsalias[$i]);
                  }*/ } print "." ; if ( $ rp -> precsym ) { printf ( " [%s]" , $ rp -> precsym -> name ) ; } /*if ($rp->code) {
                  print "\n    " . $rp->code);
              }*/ print "\n" ; } }
docstring: Duplicate the input file without comments and without actions
  on rules
  
  @return void
docstring_tokens: Duplicate the input file without comments and without actions on rules