# Format is "this function" => "does these op names"
my @raw_alias = (
Perl_do_kv => [qw( keys values )],
- Perl_unimplemented_op => [qw(padany mapstart)],
+ Perl_unimplemented_op => [qw(padany mapstart custom)],
# All the ops with a body of { return NORMAL; }
Perl_pp_null => [qw(scalar regcmaybe lineseq scope)],
Perl_pp_shift => ['pop'],
Perl_pp_sin => [qw(cos exp log sqrt)],
Perl_pp_bit_or => ['bit_xor'],
+ Perl_pp_rv2av => ['rv2hv'],
+ Perl_pp_akeys => ['avalues'],
);
while (my ($func, $names) = splice @raw_alias, 0, 2) {
END
for (@ops) {
- $_ eq "custom" and next;
if (my $name = $alias{$_}) {
print "\tMEMBER_TO_FPTR($name),\t/* Perl_pp_$_ */\n";
}
};
#endif
+#endif /* !PERL_GLOBAL_STRUCT_INIT */
+
END_EXTERN_C
-#endif /* !PERL_GLOBAL_STRUCT_INIT */
END
if (keys %OP_IS_SOCKET) {
__END__
-# New ops always go at the end, just before 'custom'
+# New ops always go at the end
+# The restriction on having custom as the last op has been removed
# A recapitulation of the format of this file:
# The file consists of five columns: the name of the op, an English
# Pushy I/O.
-backtick quoted execution (``, qx) ck_open t% S
+backtick quoted execution (``, qx) ck_open tu% S?
# glob defaults its first arg to $_
glob glob ck_glob t@ S?
-readline <HANDLE> ck_null t% F?
+readline <HANDLE> ck_readline t% F?
rcatline append I/O operator ck_null t$
# Bindable operators.
not not ck_null ifs1 S
complement 1's complement (~) ck_bitop fst1 S
+smartmatch smart match ck_smartmatch s2
+
# High falutin' math.
atan2 atan2 ck_fun fsT@ S S
aelem array element ck_null s2 A S
aslice array slice ck_null m@ A L
+aeach each on array ck_each % A
+akeys keys on array ck_each t% A
+avalues values on array ck_each t% A
+
# Hashes.
-each each ck_fun % H
-values values ck_fun t% H
-keys keys ck_fun t% H
+each each ck_each % H
+values values ck_each t% H
+keys keys ck_each t% H
delete delete ck_delete % S
exists exists ck_exists is% S
rv2hv hash dereference ck_rvconst dt1
and logical and (&&) ck_null |
or logical or (||) ck_null |
xor logical xor ck_null fs2 S S
+dor defined or (//) ck_null |
cond_expr conditional expression ck_null d|
andassign logical and assignment (&&=) ck_null s|
orassign logical or assignment (||=) ck_null s|
+dorassign defined or assignment (//=) ck_null s|
method method lookup ck_method d1
entersub subroutine entry ck_subr dmt1 L
dump dump ck_null ds}
goto goto ck_null ds}
exit exit ck_exit ds% S?
-# continued below
+setstate set statement info ck_null s;
+method_named method with known name ck_null d$
-#nswitch numeric switch ck_null d
-#cswitch character switch ck_null d
+entergiven given() ck_null d|
+leavegiven leave given block ck_null 1
+enterwhen when() ck_null d|
+leavewhen leave when block ck_null 1
+break break ck_null 0
+continue continue ck_null 0
# I/O.
prtf printf ck_listiob ims@ F? L
print print ck_listiob ims@ F? L
+say say ck_listiob ims@ F? L
sysopen sysopen ck_fun s@ F S S S?
sysseek sysseek ck_fun s@ F S S
# For multi-threading
lock lock ck_rfun s% R
-# Control (contd.)
-setstate set statement info ck_null s;
-method_named method with known name ck_null d$
-
-dor defined or (//) ck_null |
-dorassign defined or assignment (//=) ck_null s|
-
-entergiven given() ck_null d|
-leavegiven leave given block ck_null 1
-enterwhen when() ck_null d|
-leavewhen leave when block ck_null 1
-break break ck_null 0
-continue continue ck_null 0
-smartmatch smart match ck_smartmatch s2
-
-say say ck_listiob ims@ F? L
+# For state support
-# Add new ops before this, the custom operator.
+once once ck_null |
custom unknown custom operator ck_null 0