X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=opcode.pl;h=1afc2f6cf369a506f75bbfbe8f475eb74bcd3c94;hb=4b7fcc74dfb0dfcd72a60881ab8de354c43fa9fb;hp=5891139a44b74a819d9e175cb75e15282c643b16;hpb=d1a002d40d48ad14d45b48c55fb113c8f8885a42;p=p5sagit%2Fp5-mst-13.2.git diff --git a/opcode.pl b/opcode.pl index 5891139..1afc2f6 100755 --- a/opcode.pl +++ b/opcode.pl @@ -29,10 +29,10 @@ while () { $i = 0; print <<"END"; -#define pp_i_preinc pp_preinc -#define pp_i_predec pp_predec -#define pp_i_postinc pp_postinc -#define pp_i_postdec pp_postdec +#define Perl_pp_i_preinc Perl_pp_preinc +#define Perl_pp_i_predec Perl_pp_predec +#define Perl_pp_i_postinc Perl_pp_postinc +#define Perl_pp_i_postdec Perl_pp_postdec typedef enum { END @@ -46,10 +46,13 @@ print "\n#define MAXO ", scalar @ops, "\n\n"; # Emit op names and descriptions. print <pp_proto.h' or die "Error creating pp_proto.h: $!"; +open PPSYM, '>pp.sym' or die "Error creating pp.sym: $!"; + +for (sort keys %ckname) { + print PP "PERL_CKDEF(Perl_$_)\n"; + print PPSYM "Perl_$_\n"; +#OP *\t", &tab(3,$_),"(OP* o);\n"; +} + +print PP "\n\n"; + +for (@ops) { + next if /^i_(pre|post)(inc|dec)$/; + print PP "PERL_PPDEF(Perl_pp_$_)\n"; + print PPSYM "Perl_pp_$_\n"; +} + +close PP or die "Error closing pp_proto.h: $!"; +close PPSYM or die "Error closing pp.sym: $!"; + ########################################################################### sub tab { local($l, $t) = @_; @@ -237,7 +273,7 @@ padav private array ck_null d0 padhv private hash ck_null d0 padany private something ck_null d0 -pushre push regexp ck_null / +pushre push regexp ck_null d/ # References and stuff. @@ -263,8 +299,10 @@ rcatline append I/O operator ck_null t% # Bindable operators. regcmaybe regexp comp once ck_fun s1 S +regcreset regexp reset interpolation flag ck_fun s1 S regcomp regexp compilation ck_null s| S match pattern match ck_match d/ +qr pattern quote ck_match s/ subst substitution ck_null dis/ S substcont substitution cont ck_null dis| trans character translation ck_null is" S @@ -279,7 +317,7 @@ chop chop ck_spair mts% L schop scalar chop ck_null stu% S? chomp safe chop ck_spair mts% L schomp scalar safe chop ck_null stu% S? -defined defined operator ck_rfun isu% S? +defined defined operator ck_defined isu% S? undef undef operator ck_lfun s% S? study study ck_fun su% S? pos match position ck_lfun stu% S? @@ -419,7 +457,7 @@ anonhash anonymous hash ck_fun ms@ L splice splice ck_fun m@ A S? S? L push push ck_fun imst@ A L -pop pop ck_shift si% 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 @@ -457,7 +495,7 @@ reset reset ck_fun is% S? lineseq line sequence ck_null @ nextstate next statement ck_null s; dbstate debug next statement ck_null s; -unstack unstack ck_null s0 +unstack iteration finalizer ck_null s0 enter block entry ck_null 0 leave block exit ck_null @ scope block ck_null @ @@ -506,7 +544,7 @@ print print ck_listiob ims@ F? L sysopen sysopen ck_fun s@ F S S S? sysseek sysseek ck_fun s@ F S S sysread sysread ck_fun imst@ F R S S? -syswrite syswrite ck_fun imst@ F S S S? +syswrite syswrite ck_fun imst@ F S S? S? send send ck_fun imst@ F S S S? recv recv ck_fun imst@ F R S S