X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=opcode.pl;h=854996dfb47b50da25c9d77aac4c0da63d35bed2;hb=d1bd4ef0a107c19b597b3c5d49a9b6836c36909f;hp=abd8e6971b9950141c4c9f0634055af06742ae07;hpb=d83386fa7d5c45c685aebc0edb0d42d3783a39e1;p=p5sagit%2Fp5-mst-13.2.git diff --git a/opcode.pl b/opcode.pl index abd8e69..854996d 100755 --- a/opcode.pl +++ b/opcode.pl @@ -689,6 +689,8 @@ i_negate integer negation (-) ck_null ifsT1 S 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 @@ -784,9 +786,11 @@ flop range (or flop) ck_null 1 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 @@ -815,10 +819,15 @@ redo redo ck_null ds} 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. @@ -846,6 +855,7 @@ leavewrite write exit ck_null 1 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 @@ -1037,23 +1047,8 @@ syscall syscall ck_fun imst@ S L # 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