summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MANIFEST1
-rw-r--r--Makefile.SH2
-rwxr-xr-xregen_madly.pl186
-rw-r--r--regen_perly.pl4
4 files changed, 3 insertions, 190 deletions
diff --git a/MANIFEST b/MANIFEST
index d9f43c522c..077041eacb 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -3035,7 +3035,6 @@ regcomp.h Private declarations for above
regcomp.pl Builder of regnodes.h
regcomp.sym Data for regnodes.h
regen_lib.pl Common file routines for generator scripts
-regen_madly.pl generate madly.{act,h,tab} from madly.y
regen_perly.pl generate perly.{act,h,tab} from perly.y
regen.pl Run all scripts that (re)generate files
regexec.c Regular expression evaluator
diff --git a/Makefile.SH b/Makefile.SH
index da28a661a3..8039664227 100644
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -892,7 +892,7 @@ run_byacc:
# this outputs perly.h, perly.act, perly.tab, madly.h, madly.act and madly.tab
regen_perly:
perl regen_perly.pl
- perl regen_madly.pl
+ perl regen_perly.pl madly.y
# We don't want to regenerate perly.c and perly.h, but they might
# appear out-of-date after a patch is applied or a new distribution is
diff --git a/regen_madly.pl b/regen_madly.pl
deleted file mode 100755
index e87169903b..0000000000
--- a/regen_madly.pl
+++ /dev/null
@@ -1,186 +0,0 @@
-#!/usr/bin/perl
-#
-# regen_madly.pl, DAPM 12-Feb-04
-#
-# Copyright (c) 2004, 2005 Larry Wall
-#
-# Given an input file madly.y, run bison on it and produce
-# the following output files:
-#
-# madly.h standard bison header file with minor doctoring of
-# #line directives plus adding a #ifdef PERL_CORE
-#
-# madly.tab the parser table C definitions extracted from the bison output
-#
-# madly.act the action case statements extracted from the bison output
-#
-# Note that madly.c is *not* regenerated - this is now a static file which
-# is not dependent on madly.y any more.
-#
-# If a filename of the form foo.y is given on the command line, then
-# this is used instead as the basename for all the files mentioned
-# above.
-#
-# Note that temporary files of the form madlytmp.h and madlytmp.c are
-# created and then deleted during this process
-#
-# Note also that this script is intended to be run on a UNIX system;
-# it may work elsewhere but no specific attempt has been made to make it
-# portable.
-
-sub usage { die "usage: $0 [ -b bison_executable ] [ file.y ]\n" }
-
-use warnings;
-use strict;
-
-my $bison = 'bison';
-
-if (@ARGV >= 2 and $ARGV[0] eq '-b') {
- shift;
- $bison = shift;
-}
-
-my $y_file = shift || 'madly.y';
-
-usage unless @ARGV==0 && $y_file =~ /\.y$/;
-
-(my $h_file = $y_file) =~ s/\.y$/.h/;
-(my $act_file = $y_file) =~ s/\.y$/.act/;
-(my $tab_file = $y_file) =~ s/\.y$/.tab/;
-(my $tmpc_file = $y_file) =~ s/\.y$/tmp.c/;
-(my $tmph_file = $y_file) =~ s/\.y$/tmp.h/;
-
-# the yytranslate[] table generated by bison is ASCII/EBCDIC sensitive
-
-die "$0: must be run on an ASCII system\n" unless ord 'A' == 65;
-
-# check for correct version number. The constraints are:
-# * must be >= 1.24 to avoid licensing issues.
-# * it must generate the yystos[] table. Version 1.28 doesn't generate
-# this; 1.35+ does
-# * Must produce output which is extractable by the regexes below
-# * Must produce the right values.
-# These last two contstraints may well be met by earlier versions, but
-# I simply haven't tested them yet. If it works for you, then modify
-# the test below to allow that version too. DAPM Feb 04.
-
-my $version = `$bison -V`;
-unless ($version =~ /\b(1\.875[a-z]?|2\.[01])\b/) { die <<EOF; }
-
-You have the wrong version of bison in your path; currently 1.875,
-2.0 or 2.1 is required. Try installing
- http://ftp.gnu.org/gnu/bison/bison-2.0.tar.gz
-or
- http://ftp.gnu.org/gnu/bison/bison-1.875.tar.bz2
-or similar. Your bison identifies itself as:
-
-$version
-EOF
-
-# creates $tmpc_file and $tmph_file
-my_system("$bison -d -o $tmpc_file $y_file");
-
-open CTMPFILE, $tmpc_file or die "Can't open $tmpc_file: $!\n";
-my $clines;
-{ local $/; $clines = <CTMPFILE>; }
-die "failed to read $tmpc_file: length mismatch\n"
- unless length $clines == -s $tmpc_file;
-close CTMPFILE;
-
-my ($actlines, $tablines) = extract($clines);
-
-chmod 0644, $act_file;
-open ACTFILE, ">$act_file" or die "can't open $act_file: $!\n";
-print ACTFILE $actlines;
-close ACTFILE;
-chmod 0444, $act_file;
-
-chmod 0644, $tab_file;
-open TABFILE, ">$tab_file" or die "can't open $tab_file: $!\n";
-print TABFILE $tablines;
-close TABFILE;
-chmod 0444, $tab_file;
-
-unlink $tmpc_file;
-
-# Wrap PERL_CORE round the symbol definitions. Also, the
-# C<#line 123 "madlytmp.h"> gets picked up by make depend, so change it.
-
-open TMPH_FILE, $tmph_file or die "Can't open $tmph_file: $!\n";
-chmod 0644, $h_file;
-open H_FILE, ">$h_file" or die "Can't open $h_file: $!\n";
-my $endcore_done = 0;
-while (<TMPH_FILE>) {
- print H_FILE "#ifdef PERL_CORE\n" if $. == 1;
- if (!$endcore_done and /YYSTYPE_IS_DECLARED/) {
- print H_FILE "#endif /* PERL_CORE */\n";
- $endcore_done = 1;
- }
- s/"madlytmp.h"/"madly.h"/;
- print H_FILE $_;
-}
-close TMPH_FILE;
-close H_FILE;
-chmod 0444, $h_file;
-unlink $tmph_file;
-
-print "rebuilt: $h_file $tab_file $act_file\n";
-
-exit 0;
-
-
-sub extract {
- my $clines = shift;
- my $tablines;
- my $actlines;
-
- $clines =~ m@
- (?:
- ^/* YYFINAL[^\n]+\n #optional comment
- )?
- \# \s* define \s* YYFINAL # first #define
- .*? # other defines + most tables
- yystos\[\]\s*= # start of last table
- .*?
- }\s*; # end of last table
- @xms
- or die "Can't extract tables from $tmpc_file\n";
- $tablines = $&;
-
-
- $clines =~ m@
- switch \s* \( \s* \w+ \s* \) \s* { \s*
- (
- case \s* \d+ \s* : \s*
- \#line [^\n]+"madly\.y"
- .*?
- )
- }
- \s*
- ( \s* /\* .*? \*/ \s* )* # optional C-comments
- \s*
- (
- \#line[^\n]+\.c"
- |
- \#line[^\n]+\.simple"
- )
- @xms
- or die "Can't extract actions from $tmpc_file\n";
- $actlines = $1;
-
- return $actlines. "\n", $tablines. "\n";
-}
-
-sub my_system {
- system(@_);
- if ($? == -1) {
- die "failed to execute comamnd '@_': $!\n";
- }
- elsif ($? & 127) {
- die sprintf "command '@_' died with signal %d\n",
- ($? & 127);
- }
- elsif ($? >> 8) {
- die sprintf "command '@_' exited with value %d\n", $? >> 8;
- }
-}
diff --git a/regen_perly.pl b/regen_perly.pl
index 67f763f455..af92aa890c 100644
--- a/regen_perly.pl
+++ b/regen_perly.pl
@@ -114,7 +114,7 @@ while (<TMPH_FILE>) {
print H_FILE "#endif /* PERL_CORE */\n";
$endcore_done = 1;
}
- s/"perlytmp.h"/"perly.h"/;
+ s/"$tmph_file"/"$h_file"/;
print H_FILE $_;
}
close TMPH_FILE;
@@ -150,7 +150,7 @@ sub extract {
switch \s* \( \s* \w+ \s* \) \s* { \s*
(
case \s* \d+ \s* : \s*
- \#line [^\n]+"perly\.y"
+ \#line [^\n]+"\Q$y_file\E"
.*?
)
}