#!/usr/bin/perl
BEGIN {
# Get function prototypes
- require 'regen.pl';
+ require 'regen_lib.pl';
}
$opcode_new = 'opcode.h-new';
/*
* opcode.h
*
- * Copyright (c) 1997-2002, Larry Wall
+ * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+ * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
/*
* opnames.h
*
- * Copyright (c) 1997-2002, Larry Wall
+ * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
START_EXTERN_C
-#define OP_NAME(o) (o->op_type == OP_CUSTOM ? custom_op_name(o) : \\
- PL_op_name[o->op_type])
-#define OP_DESC(o) (o->op_type == OP_CUSTOM ? custom_op_desc(o) : \\
- PL_op_desc[o->op_type])
+#define OP_NAME(o) ((o)->op_type == OP_CUSTOM ? custom_op_name(o) : \\
+ PL_op_name[(o)->op_type])
+#define OP_DESC(o) ((o)->op_type == OP_CUSTOM ? custom_op_desc(o) : \\
+ PL_op_desc[(o)->op_type])
#ifndef DOINIT
EXT char *PL_op_name[];
safer_rename $pp_proto_new, 'pp_proto.h';
safer_rename $pp_sym_new, 'pp.sym';
+END {
+ foreach ('opcode.h', 'opnames.h', 'pp_proto.h', 'pp.sym') {
+ 1 while unlink "$_-old";
+ }
+}
+
###########################################################################
sub tab {
local($l, $t) = @_;
regcomp regexp compilation ck_null s| S
match pattern match (m//) ck_match d/
qr pattern quote (qr//) ck_match s/
-subst substitution (s///) ck_null dis/ S
+subst substitution (s///) ck_match dis/ S
substcont substitution iterator ck_null dis|
-trans transliteration (tr///) ck_null is" S
+trans transliteration (tr///) ck_match is" S
# Lvalue operators.
# sassign is special-cased for op class
# Explosives and implosives.
-unpack unpack ck_fun @ S S?
+unpack unpack ck_unpack @ S S?
pack pack ck_fun mst@ S L
split split ck_split t@ S S S
join join or string ck_join mst@ S L
splice splice ck_fun m@ A S? S? L
push push ck_fun imsT@ A L
-pop pop ck_shift s% A
-shift shift ck_shift s% A
+pop pop ck_shift s% A?
+shift shift ck_shift s% A?
unshift unshift ck_fun imsT@ A L
sort sort ck_sort m@ C? L
reverse reverse ck_fun mt@ L