# padop/svop - $ padop - # (unused) loop - {
# baseop/unop - % loopexop - } filestatop - -
# pvop/svop - " cop - ; methop - .
+# unop_aux - +
# Other options are:
# needs stack mark - m (OA_MARK)
# scalar - S list - L array - A
# hash - H sub (CV) - C file - F
# socket - Fs filetest - F- filetest_access - F-+
-# num-compare - S< dirhandle - DF
+# num-compare - S< dirhandle - DF infix bitwise - S|
# reference - R
# "?" denotes an optional operand.
gvsv scalar variable ck_null ds$
gv glob value ck_null ds$
-gelem glob elem ck_null d2 S S
+gelem glob elem ck_null ds2 S S
padsv private variable ck_null ds0
padav private array ck_null d0
padhv private hash ck_null d0
rv2sv scalar dereference ck_rvconst ds1
av2arylen array length ck_null is1
rv2cv subroutine dereference ck_rvconst d1
-anoncode anonymous subroutine ck_anoncode $
-prototype subroutine prototype ck_null s% S
+anoncode anonymous subroutine ck_anoncode s$
+prototype subroutine prototype ck_prototype su% S?
refgen reference constructor ck_spair m1 L
srefgen single ref constructor ck_null fs1 S
ref reference-type operator ck_fun stu% S?
regcmaybe regexp internal guard ck_fun s1 S
regcreset regexp internal reset ck_fun s1 S
regcomp regexp compilation ck_null s| S
-match pattern match (m//) ck_match d/
+match pattern match (m//) ck_match /
qr pattern quote (qr//) ck_match s/
-subst substitution (s///) ck_match dis/ S
-substcont substitution iterator ck_null dis|
+subst substitution (s///) ck_match is/ S
+substcont substitution iterator ck_null is|
trans transliteration (tr///) ck_match is" S
# y///r
transr transliteration (tr///) ck_match is" S
i_preinc integer preincrement (++) ck_lfun dis1 S
predec predecrement (--) ck_lfun dIs1 S
i_predec integer predecrement (--) ck_lfun dis1 S
-postinc postincrement (++) ck_lfun dIst1 S
-i_postinc integer postincrement (++) ck_lfun disT1 S
-postdec postdecrement (--) ck_lfun dIst1 S
-i_postdec integer postdecrement (--) ck_lfun disT1 S
+postinc postincrement (++) ck_lfun Ist1 S
+i_postinc integer postincrement (++) ck_lfun ist1 S
+postdec postdecrement (--) ck_lfun Ist1 S
+i_postdec integer postdecrement (--) ck_lfun ist1 S
# Ordinary operators.
i_divide integer division (/) ck_null ifsT2 S S
modulo modulus (%) ck_null IifsT2 S S
i_modulo integer modulus (%) ck_null ifsT2 S S
-repeat repeat (x) ck_repeat fmt2 L S
+repeat repeat (x) ck_repeat fmT2 L S
add addition (+) ck_null IfsT2 S S
i_add integer addition (+) ck_null ifsT2 S S
ne numeric ne (!=) ck_null Iifs2 S S<
i_ne integer ne (!=) ck_null ifs2 S S<
ncmp numeric comparison (<=>) ck_null Iifst2 S S<
-i_ncmp integer comparison (<=>) ck_null ifst2 S S<
+i_ncmp integer comparison (<=>) ck_null ifsT2 S S<
slt string lt ck_null ifs2 S S
sgt string gt ck_null ifs2 S S
sge string ge ck_null ifs2 S S
seq string eq ck_null ifs2 S S
sne string ne ck_null ifs2 S S
-scmp string comparison (cmp) ck_null ifst2 S S
-
-bit_and bitwise and (&) ck_bitop fst2 S S
-bit_xor bitwise xor (^) ck_bitop fst2 S S
-bit_or bitwise or (|) ck_bitop fst2 S S
+scmp string comparison (cmp) ck_null ifsT2 S S
+
+bit_and bitwise and (&) ck_bitop fst2 S S|
+bit_xor bitwise xor (^) ck_bitop fst2 S S|
+bit_or bitwise or (|) ck_bitop fst2 S S|
+nbit_and numeric bitiwse and (&) ck_bitop fsT2 S S|
+nbit_xor numeric bitwise xor (^) ck_bitop fsT2 S S|
+nbit_or numeric bitwise or (|) ck_bitop fsT2 S S|
+sbit_and string bitiwse and (&) ck_bitop fst2 S S|
+sbit_xor string bitwise xor (^) ck_bitop fst2 S S|
+sbit_or string bitwise or (|) ck_bitop fst2 S S|
negate negation (-) ck_null Ifst1 S
-i_negate integer negation (-) ck_null ifsT1 S
+i_negate integer negation (-) ck_null ifst1 S
not not ck_null ifs1 S
-complement 1's complement (~) ck_bitop fst1 S
+complement 1's complement (~) ck_bitop fsT1 S
+ncomplement numeric 1's complement (~) ck_bitop fsT1 S
+scomplement string 1's complement (~) ck_null fsT1 S
smartmatch smart match ck_smartmatch s2
length length ck_length ifsTu% S?
substr substr ck_substr st@ S S S? S?
-vec vec ck_fun ist@ S S S
+vec vec ck_fun isT@ S S S
index index ck_index isT@ S S S?
rindex rindex ck_index isT@ S S S?
aslice array slice ck_null m@ A L
kvaslice index/value array slice ck_null m@ A L
-aeach each on array ck_each % A
+aeach each on array ck_each d% A
akeys keys on array ck_each t% A
-avalues values on array ck_each t% A
+avalues values on array ck_each dt% A
# Hashes.
-each each ck_each % H
-values values ck_each t% H
+each each ck_each d% H
+values values ck_each dt% H
keys keys ck_each t% H
delete delete ck_delete % S
exists exists ck_exists is% S
hslice hash slice ck_null m@ H L
kvhslice key/value hash slice ck_null m@ H L
+# mixed array and hash access
+
+multideref array or hash lookup ck_null ds+
+
# Explosives and implosives.
unpack unpack ck_fun u@ S S?
pack pack ck_fun fmst@ S L
-split split ck_split t@ S S S
+split split ck_split T@ S S S
join join or string ck_join fmst@ S L
# List operators.
list list ck_null m@ L
lslice list slice ck_null 2 H L L
-anonlist anonymous list ([]) ck_fun ms@ L
+anonlist anonymous array ([]) ck_fun ms@ L
anonhash anonymous hash ({}) ck_fun ms@ L
splice splice ck_fun m@ A S? S? L
pop pop ck_shift s% A?
shift shift ck_shift s% A?
unshift unshift ck_fun imsT@ A L
-sort sort ck_sort dm@ C? L
+sort sort ck_sort m@ C? L
reverse reverse ck_fun mt@ L
-grepstart grep ck_grep dm@ C L
-grepwhile grep iterator ck_null dt|
+grepstart grep ck_grep m@ C L
+grepwhile grep iterator ck_null t|
-mapstart map ck_grep dm@ C L
-mapwhile map iterator ck_null dt|
+mapstart map ck_grep m@ C L
+mapwhile map iterator ck_null t|
# Range stuff.
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|
+cond_expr conditional expression ck_null |
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 d.
-entersub subroutine entry ck_subr dmt1 L
+entersub subroutine entry ck_subr dm1 L
leavesub subroutine exit ck_null 1
leavesublv lvalue subroutine return ck_null 1
caller caller ck_fun t% S?
warn warn ck_fun imst@ L
-die die ck_fun dimst@ L
+die die ck_fun imst@ L
reset symbol reset ck_fun is% S?
lineseq line sequence ck_null @
iter foreach loop iterator ck_null 0
enterloop loop entry ck_null d{
leaveloop loop exit ck_null 2
-return return ck_return dm@ L
-last last ck_null ds}
-next next ck_null ds}
-redo redo ck_null ds}
+return return ck_return m@ L
+last last ck_null s}
+next next ck_null s}
+redo redo ck_null s}
dump dump ck_null ds}
-goto goto ck_null ds}
-exit exit ck_fun ds% S?
+goto goto ck_null s}
+exit exit ck_fun s% S?
method_named method with known name ck_null d.
+method_super super with known name ck_null d.
+method_redir redirect method with known name ck_null d.
+method_redir_super redirect super method with known name ck_null d.
entergiven given() ck_null d|
leavegiven leave given block ck_null 1
tie tie ck_fun idms@ R S L
untie untie ck_fun is% R
-tied tied ck_fun s% R
+tied tied ck_fun ds% R
dbmopen dbmopen ck_fun is@ H S S
dbmclose dbmclose ck_fun is% H
getc getc ck_eof st% F?
read read ck_fun imst@ F R S S?
-enterwrite write ck_fun dis% F?
+enterwrite write ck_fun is% F?
leavewrite write exit ck_null 1
prtf printf ck_listiob ims@ F? L
wait wait ck_null isT0
waitpid waitpid ck_fun isT@ S S
system system ck_exec imsT@ S? L
-exec exec ck_exec dimsT@ S? L
-kill kill ck_fun dimsT@ L
+exec exec ck_exec imsT@ S? L
+kill kill ck_fun imsT@ L
getppid getppid ck_null isT0
getpgrp getpgrp ck_fun isT% S?
setpgrp setpgrp ck_fun isT@ S? S?
# Eval.
-require require ck_require du% S?
+require require ck_require dsu% S?
dofile do "file" ck_fun d1 S
hintseval eval hints ck_svconst s$
entereval eval "string" ck_eval du% S?
custom unknown custom operator ck_null 0
# For smart dereference for each/keys/values
-reach each on reference ck_each % S
+reach each on reference ck_each d% S
rkeys keys on reference ck_each t% S
-rvalues values on reference ck_each t% S
+rvalues values on reference ck_each dt% S
# For CORE:: subs
coreargs CORE:: subroutine ck_null $
introcv private subroutine ck_null d0
clonecv private subroutine ck_null d0
padrange list of private variables ck_null d0
-refassign lvalue ref assignment ck_refassign d2
+refassign lvalue ref assignment ck_refassign ds2
lvref lvalue ref assignment ck_null d%
lvrefslice lvalue ref assignment ck_null d@
lvavref lvalue array reference ck_null d%
+anonconst anonymous constant ck_null ds1