# 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
av2arylen array length ck_null is1
rv2cv subroutine dereference ck_rvconst d1
anoncode anonymous subroutine ck_anoncode s$
-prototype subroutine prototype ck_null s% 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?
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
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
+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 bitwise 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 bitwise 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
not not ck_null ifs1 S
complement 1's complement (~) ck_bitop fst1 S
+ncomplement numeric 1's complement (~) ck_bitop fsT1 S
+# scomplement uses ck_bitop only for the experimental warning. Once the
+# warning is gone, this can change to ck_null.
+scomplement string 1's complement (~) ck_bitop 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?
kvaslice index/value array slice ck_null m@ A L
aeach each on array ck_each d% A
-akeys keys on array ck_each t% A
avalues values on array ck_each dt% A
+akeys keys on array ck_each t% A
# Hashes.
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.
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
+argcheck check subroutine arguments ck_null +
+argelem subroutine argument ck_null +
+argdefelem subroutine argument default value ck_null |
caller caller ck_fun t% S?
warn warn ck_fun imst@ L
die die ck_fun imst@ L
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
# 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 d% S
-rkeys keys on reference ck_each t% S
-rvalues values on reference ck_each dt% S
-
# For CORE:: subs
coreargs CORE:: subroutine ck_null $
+avhvswitch Array/hash switch ck_null t1
runcv __SUB__ ck_null s0
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