[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    [PATCH 3/3] shell: $(()): add tests
From:       Steffen Nurpmeso <steffen () sdaoden ! eu>
Date:       2022-08-26 17:05:05
Message-ID: 14ce57055c5e370e1e5cdc9c52e0c6e0855197ee.1661533474.git.steffen () sdaoden ! eu
[Download RAW message or body]

---
 shell/ash_test/ash-arith/bigbadbison.right   | 880 ++++++++++++++++++
 shell/ash_test/ash-arith/bigbadbison.tests   | 914 +++++++++++++++++++
 shell/hush_test/hush-arith/bigbadbison.right | 880 ++++++++++++++++++
 shell/hush_test/hush-arith/bigbadbison.tests | 914 +++++++++++++++++++
 4 files changed, 3588 insertions(+)
 create mode 100644 shell/ash_test/ash-arith/bigbadbison.right
 create mode 100755 shell/ash_test/ash-arith/bigbadbison.tests
 create mode 100644 shell/hush_test/hush-arith/bigbadbison.right
 create mode 100755 shell/hush_test/hush-arith/bigbadbison.tests

diff --git a/shell/ash_test/ash-arith/bigbadbison.right b/shell/ash_test/ash-arith/bigbadbison.right
new file mode 100644
index 0000000000..a6446c81cd
--- /dev/null
+++ b/shell/ash_test/ash-arith/bigbadbison.right
@@ -0,0 +1,880 @@
+= BASE
+<0>
+<0>
+<1>
+<0>
+<0>
+<0>
+<0>
+<1>
+<1>
+<1>
+<0>
+<10>
+<9191919191919>
+<13>
+<11>
+<1023>
+<1295>
+<1295>
+<9322365>
+<16242915>
+<10>
+<33>
+<10>
+<33>
+<1>
+<1>
+<1>
+<33>
+<33>
+<33>
+<33>
+= UNA PLUS/MINUS
+<0>
+<0>
+<1>
+<1>
+<4221>
+<16929>
+<16242915>
+<16242915>
+<1>
+<1>
+<1>
+<0>
+<0>
+<-1>
+<-1>
+<-4221>
+<-16929>
+<-16242915>
+<-16242915>
+<-1>
+<-1>
+<-1>
+<-1>
+<1>
+<-1>
+= UNA !
+<1>
+<1>
+<0>
+<0>
+<1>
+<0>
+= UNA ~
+<-1>
+<-1>
+<-2>
+<-2>
+<-2276>
+<0>
+<0>
+<-1>
+<-1>
+<-1>
+<-1>
+= BIN +
+<0>
+<0>
+<1>
+<1>
+<1>
+<1>
+<2>
+<2>
+<2>
+<-2>
+<3333>
+<3333>
+<33>
+<-33>
+<-33>
+<-1>
+<33>
+<-33>
+<-33>
+<1>
+<9223372036854775807>
+<-9223372036854775807>
+<9223372036854775806>
+<-9223372036854775808>
+<-2>
+<0>
+<9223372036854775797>
+<-9223372036854775797>
+<9223372036854775796>
+<-9223372036854775798>
+<-12>
+<10>
+= BIN -
+<0>
+<0>
+<-1>
+<-1>
+<1>
+<1>
+<0>
+<0>
+<0>
+<0>
+<-1111>
+<1111>
+<-1>
+<1>
+<1>
+<129>
+<1>
+<-1>
+<-1>
+<129>
+<-9223372036854775807>
+<9223372036854775807>
+<-9223372036854775808>
+<9223372036854775806>
+<0>
+<-2>
+<-9223372036854775797>
+<9223372036854775797>
+<-9223372036854775798>
+<9223372036854775796>
+<10>
+<-12>
+= BIN *
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<1>
+<1>
+<2468642>
+<2468642>
+<272>
+<272>
+<272>
+<-4160>
+<272>
+<272>
+<272>
+<-4160>
+<-9223372036854775808>
+<-9223372036854775808>
+<-9223372036854775807>
+<9223372036854775807>
+<1>
+<-1>
+<-9223372036854775808>
+<-9223372036854775808>
+<-9223372036854775797>
+<9223372036854775797>
+<11>
+<-11>
+= BIN /
+<0>
+<1>
+<1>
+<0>
+<2>
+<0>
+<0>
+<0>
+<0>
+<1>
+<1>
+<1>
+<-1>
+<2>
+<3>
+<1>
+<1>
+<0>
+<0>
+<-9223372036854775808>
+<-9223372036854775808>
+<-9223372036854775807>
+<9223372036854775807>
+<1>
+<-1>
+<838488366986797800>
+<-838488366986797800>
+<-838488366986797800>
+<838488366986797800>
+<0>
+<0>
+= BIN %
+<0>
+<0>
+<0>
+<1111>
+<0>
+<16>
+<-16>
+<-16>
+<64>
+<1>
+<-1>
+<-1>
+<1>
+<0>
+<0>
+<1>
+<0>
+<3>
+<-1>
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<-8>
+<-8>
+<7>
+<7>
+<-1>
+<-1>
+= BIN <<
+<0>
+<0>
+<0>
+<0>
+<1>
+<1>
+<2>
+<2>
+<78179674781384704>
+<18639486976>
+<2097152>
+<-2251799813685248>
+<-2251799813685248>
+<0>
+<1114112>
+<-4785074604081152>
+<-4785074604081152>
+<65>
+<64>
+<0>
+<0>
+<-9223372036854775808>
+<-2>
+<-9223372036854775808>
+<-2>
+<0>
+<0>
+<-9007199254740992>
+<-2048>
+<-9007199254740992>
+<-2048>
+= BIN >>
+<0>
+<0>
+<0>
+<0>
+<1>
+<1>
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<-1>
+<-1>
+<131071>
+<0>
+<0>
+<-1>
+<-1>
+<65>
+<64>
+<-1>
+<-4611686018427387904>
+<0>
+<4611686018427387903>
+<-1>
+<-1>
+<-1024>
+<-4503599627370496>
+<1023>
+<4503599627370495>
+<-1>
+<-1>
+<9007199254740991>
+= BIN **
+<0>
+<2>
+<4>
+<8>
+<16>
+<10000>
+<10000000000>
+<100005>
+<10000000000>
+= LOG OR
+<0>
+<0>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+= LOG AND
+<0>
+<0>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<0>
+<0>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<0>
+<0>
+= BIN BIT_OR
+<0>
+<0>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<3327>
+<3327>
+<17>
+<-1>
+<-1>
+<-1>
+<17>
+<-1>
+<-1>
+<-63>
+<1088>
+<-1>
+<-9223372036854775807>
+<-1>
+<9223372036854775807>
+<-1>
+<-1>
+<-11>
+<-9223372036854775797>
+<-1>
+<9223372036854775807>
+<-1>
+<-1>
+= BIN BIT_XOR
+<0>
+<0>
+<1>
+<1>
+<1>
+<1>
+<0>
+<0>
+<3321>
+<3321>
+<1>
+<31>
+<31>
+<-1>
+<1>
+<31>
+<31>
+<-127>
+<1088>
+<9223372036854775807>
+<-9223372036854775807>
+<-9223372036854775808>
+<9223372036854775806>
+<0>
+<-2>
+<9223372036854775797>
+<-9223372036854775797>
+<-9223372036854775798>
+<9223372036854775796>
+<10>
+<-12>
+= BIN BIT_AND
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<1>
+<1>
+<6>
+<6>
+<16>
+<-32>
+<-32>
+<0>
+<16>
+<-32>
+<-32>
+<64>
+<0>
+<-9223372036854775808>
+<0>
+<9223372036854775807>
+<1>
+<-1>
+<1>
+<-9223372036854775808>
+<0>
+<9223372036854775797>
+<11>
+<-11>
+<11>
+= BIN EQ
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<1>
+= BIN NE
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<0>
+= BIN LE
+<1>
+<1>
+<1>
+<1>
+<0>
+<1>
+<1>
+<1>
+<0>
+<1>
+<1>
+<1>
+<0>
+<1>
+<1>
+<0>
+<1>
+= BIN GE
+<1>
+<1>
+<1>
+<0>
+<1>
+<1>
+<1>
+<0>
+<1>
+<1>
+<1>
+<0>
+<1>
+<1>
+<1>
+<1>
+<0>
+= BIN LT
+<0>
+<0>
+<0>
+<1>
+<0>
+<0>
+<0>
+<1>
+<0>
+<0>
+<0>
+<1>
+<0>
+<0>
+<0>
+<0>
+<1>
+= BIN GT
+<0>
+<0>
+<0>
+<0>
+<1>
+<0>
+<0>
+<0>
+<1>
+<0>
+<0>
+<0>
+<1>
+<0>
+<0>
+<1>
+<0>
+= PRECEDENCE I
+<6>
+<2>
+<0>
+<2>
+<-1>
+<1>
+<1>
+<2>
+<8>
+<7>
+<12>
+<5>
+<10>
+<1>
+<72>
+<48>
+<288>
+<1>
+<3>
+<1>
+<4>
+<76>
+<1>
+<1>
+<1>
+<1>
+<2>
+<2>
+= PARENS
+<6>
+<6>
+<-4>
+<-4>
+<2>
+<2>
+<0>
+<0>
+<-3>
+<-3>
+<0>
+<0>
+<12>
+<12>
+<10>
+<10>
+<12>
+<48>
+<1>
+<1>
+<6>
+<6>
+<9>
+<9>
+<20>
+<20>
+<21>
+<21>
+<36864>
+<36864>
+<6>
+<6>
+<9>
+<9>
+<9>
+<9>
+<0>
+<0>
+<38>
+<38>
+<2>
+<2>
+<32>
+<32>
+<0>
+<0>
+<24>
+<24>
+= ASSIGN I
+<3><3>
+<3><3>
+<3><3>
+<11><11>
+<9><9>
+<10><10>
+<20><20>
+<10><10>
+<5><5>
+<0><0>
+<0><0>
+<10><10>
+<100><100>
+<100><100>
+<11><11>
+<11><11>
+<10><10>
+<2><2>
+<5><5>
+<20><20>
+<9223372036854775807><9223372036854775807>
+= ASSIGN II
+<2><3>
+<4><3>
+<36><5><7>
+<1501><100><15>
+<3><3>
+<10><1><2><3><10>
+= POSTFIX
+<1><2>
+<1><2><1>
+<10><2><11>
+<10><2><11>
+<1><0>
+<1><0><1>
+<10><0><9>
+<10><0><9>
+= PREFIX
+<2><2>
+<2><2><2>
+<22><2><11>
+<10><1><10>
+<22><2><11>
+<0><0>
+<0><0><0>
+<9><1><9>
+<10><1><10>
+<0><0><9>
+= VAR RECUR
+<2><1 + 1>
+<2><1 + 1>
+<3><3>
+<2><3>
+<3><1 + 1>
+<4><1 + 1 * 2>
+<5><(1 + 1) * 2>
+<3><3><3 / 2>
+<2><2>
+<2><2>
+<3><3>
+<4><4>
+<5><5>
+<5><5><3 / 2>
+= COMMA
+<2>
+<3>
+<4>
+<4>
+<133><133>
+<10><I2><10>
+= COND
+<3>
+<3>
+<2>
+<3>
+<2>
+<2>
+<111>
+<5>
+<7>
+<5>
+<5>
+<7>
+<7>
+<7>
+<7>
+<5>
+-- COND .2
+<-1>
+<0>
+<1>
+<1>
+<32>
+<32>
+<1>
+<1>
+<32>
+-- COND .3
+<3>
+<4>
+<3>
+<3>
+<3>
+<4>
+<3>
+<3>
+<3>
+<4>
+<1>
+<4>
+<5>
+<2>
+<10>
+<10>
+<10>
+<10>
+<10>
+<2>
+<10>
+<10>
+<10>
+<10>
+<10>
+<2>
+<5>
+<5>
+<8>
+<8>
+<10>
+<10>
+<10>
+<10>
+<10>
+-- COND .4
+<5>
+<6>
+<7>
+<8>
+<9>
+<12>
+<10>
+<12>
+<10>
+-- COND .5
+<12>
+<10>
+<12>
+<10>
+-- COND .6
+<12>
+<9>
+<-2>
+<-1>
+<23>
+<26>
+<24>
+<0>
+<23>
+<23>
+<23>
+-- COND .7
+<16><2><3><16><5>
+<16><2><3><16><5>
+<16><2><3><16><5>
+<25><2><3><4><25><>
+<9><2><9><4><5>
+<9><2><9><4><5>
+<9><2><9><4><5>
+<9><2><9><4><5>
+<9><2><9><4><5>
+<16><2><3><16><5>
+<9><2><9><4><5><>
+<4><4><3><4><5><>
+-- COND .8
+<10><2>
+<20><0>
+<10><10>
+<20><0>
+<10><10>
+<20><0>
+<20><20>
+-- COND .9
+<2><+E+><1+1>
+<2><1+1><+E+>
+<2><+E+><2>
+<1><1><+E+>
+<4><+E+><4>
+<4><4><+E+>
+-- COND .10
+<-1><+E+><+E+><+E+><-1>
+<2><1><2><+E+><+E+>
+<3><0><+E+><3><+E+>
+= WILD I
+<14>
+<1>
+<1>
+<1>
+<3>
+<87>
+<2097152>
+<20><I2><10>
+<100><I2><10>
+<0><I2><10>
+= WILD II
+<36><11>
+<33><11>
+<36><12>
+<39><12>
+<39><12>
+<-33><12>
+<-27>
+<20><10>
+<21><11>
+<20><10>
+<21><11>
+<21><11>
+<20><10>
+<20><10>
+<21>
+<21>
+<21>
+= WILD RECUR
+<20><20><10>
+<10><I2><10><I2+=1>
+<11><I2><11><I2+=1>
+<21><I2><11><I2+=1>
+<10><I2><10><I2+=1>
+<1><I2=0><1><I2+=1>
+<6><6><6><I2+=1>
+<10><10><5><I2+=1>
+<12><I2=(I2)+1><12><I2+=1>
+<12><I2=(I2=(I2)+1)><12><I2+=1>
+<10><I2><11><I2+=1>
+<10><I2><11><I2+=1>
+<10><10><5>
+<6><I2=+E+><6>
+<10><I2><10>
+<10><0><10><20>
+<10><6><10><20>
+<10><10><10><20>
+<50><50><10><20>
+<50><50><10><20>
+<500><500><10><20>
diff --git a/shell/ash_test/ash-arith/bigbadbison.tests b/shell/ash_test/ash-arith/bigbadbison.tests
new file mode 100755
index 0000000000..2b15fda7c9
--- /dev/null
+++ b/shell/ash_test/ash-arith/bigbadbison.tests
@@ -0,0 +1,914 @@
+# make this work with (ba)sh \
+command -v shopt && shopt -s expand_aliases;\
+alias p=printf;alias eìho;alias s=export
+s I J3
+e '= BASE'
+e "<$(())>"
+e "<$((  ))>"
+e "<$((1))>"
+e "<$((0))>"
+e "<$((0x0))>"
+e "<$((0X0))>"
+e "<$((000))>"
+e "<$((000000000000001))>"
+e "<$((2#00000000000000000000000000000000000001))>"
+e "<$((0X00000000000000000000000000000000000000000001))>"
+e "<$((999999999999999999999999999999999999999999999))>"
+e "<$(( 	10	 ))>"
+e "<$((9191919191919))>"
+e "<$((0xD))>"
+e "<$((013))>"
+e "<$((32#VV))>"
+e "<$((36#ZZ))>"
+e "<$((36#zz))>"
+e "<$((  64#zzZZ  ))>"
+e "<$((64#ZZzz))>"
+e "<$((I))>"
+e "<$((J))>"
+e "<$(( I ))>"
+e "<$((	 J 	 ))>"
+e "<$(( (1) ))>"
+e "<$((((1))))>"
+e "<$(((((1)))))>"
+e "<$(( (J) ))>"
+e "<$((((J))))>"
+e "<$(((((J)))))>"
+e "<$((	( 	( 	( 	J	 )	 )	 )	 ))>"
+e '= UNA PLUS/MINUS'
+e "<$((+0))>"
+e "<$((    +  0 ))>"
+e "<$(( +1))>"
+e "<$((+ 1 ))>"
+e "<$(( + 4221 ))>"
+e "<$(( +0x4221 ))>"
+e "<$(( + 64#ZZzz ))>"
+e "<$(( +64#ZZzz ))>"
+e "<$((+ (1) ))>"
+e "<$((+((1))))>"
+e "<$((+(((1)))))>"
+e "<$((-0))>"
+e "<$((    -  0 ))>"
+e "<$(( -1))>"
+e "<$((- 1 ))>"
+e "<$(( - 4221 ))>"
+e "<$(( -0x4221 ))>"
+e "<$(( - 64#ZZzz ))>"
+e "<$(( -64#ZZzz ))>"
+e "<$((- (1) ))>"
+e "<$((-((1))))>"
+e "<$((-(((1)))))>"
+e "<$((+ -(1) ))>"
+e "<$((+(-(-1))))>"
+e "<$((+(-(-(-1)))))>"
+e '= UNA !'
+e "<$((!0))>"
+e "<$((! 00000000))>"
+e "<$((!1))>"
+e "<$((! 0x00001))>"
+e "<$((! - 0))>"
+e "<$((!-1))>"
+e '= UNA ~'
+e "<$((~0))>"
+e "<$((~ 00000000))>"
+e "<$((~1))>"
+e "<$((~ 0x00001))>"
+e "<$((~ 64#zz))>"
+e "<$((~-1))>"
+e "<$((~ - 1))>"
+e "<$((~-0))>"
+e "<$((~ - 0))>"
+e "<$((~(-0)))>"
+e "<$((~((- 0))))>"
+e '= BIN +'
+e "<$((0+0))>"
+e "<$(( 0 + 0 ))>"
+e "<$((0+1))>"
+e "<$(( 0 + 1 ))>"
+e "<$((1+0))>"
+e "<$(( 1 + 0 ))>"
+e "<$((1+1))>"
+e "<$(( 1 + 1 ))>"
+e "<$(( (1 + 1) ))>"
+e "<$(((((((-1)))) + (((-1))))))>"
+e "<$((1111+2222))>"
+e "<$((2222+1111))>"
+e "<$(( +0x10 + +0x11 ))>"
+e "<$(( -0x10 + -0x11 ))>"
+e "<$(( -0x10 + -0x11 ))>"
+e "<$(( +64#10 + -64#11 ))>"
+e "<$(( +0x11 + +0x10 ))>"
+e "<$(( -0x11 + -0x10 ))>"
+e "<$(( -0x11 + -0x10 ))>"
+e "<$(( +64#11 + -64#10 ))>"
+e "<$((0x8000000000000000+-1))>"
+e "<$((0x8000000000000000+1))>"
+e "<$((0x7FFFFFFFFFFFFFFF+-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF+1))>"
+e "<$((0xFFFFFFFFFFFFFFFF+-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF+1))>"
+e "<$((0x8000000000000000+-11))>"
+e "<$((0x8000000000000000+11))>"
+e "<$((0x7FFFFFFFFFFFFFFF+-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF+11))>"
+e "<$((0xFFFFFFFFFFFFFFFF+-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF+11))>"
+e '= BIN -'
+e "<$((0-0))>"
+e "<$(( 0 - 0 ))>"
+e "<$((0-1))>"
+e "<$(( 0 - 1 ))>"
+e "<$((1-0))>"
+e "<$(( 1 - 0 ))>"
+e "<$((1-1))>"
+e "<$(( 1 - 1 ))>"
+e "<$(( (1 - 1) ))>"
+e "<$(((((((+1)))) - (((+1))))))>"
+e "<$((1111-2222))>"
+e "<$((2222-1111))>"
+e "<$(( +0x10 - +0x11 ))>"
+e "<$(( -0x10 - -0x11 ))>"
+e "<$(( -0x10 - -0x11 ))>"
+e "<$(( +64#10 - -64#11 ))>"
+e "<$(( +0x11 - +0x10 ))>"
+e "<$(( -0x11 - -0x10 ))>"
+e "<$(( -0x11 - -0x10 ))>"
+e "<$(( +64#11 - -64#10 ))>"
+e "<$((0x8000000000000000--1))>"
+e "<$((0x8000000000000000-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF--1))>"
+e "<$((0x7FFFFFFFFFFFFFFF-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF--1))>"
+e "<$((0xFFFFFFFFFFFFFFFF-1))>"
+e "<$((0x8000000000000000--11))>"
+e "<$((0x8000000000000000-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF--11))>"
+e "<$((0x7FFFFFFFFFFFFFFF-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF--11))>"
+e "<$((0xFFFFFFFFFFFFFFFF-11))>"
+e '= BIN *'
+e "<$((0*0))>"
+e "<$(( 0 * 0 ))>"
+e "<$((0*1))>"
+e "<$(( 0 * 1 ))>"
+e "<$((1*0))>"
+e "<$(( 1 * 0 ))>"
+e "<$((1*1))>"
+e "<$(( 1 * 1 ))>"
+e "<$((1111*2222))>"
+e "<$((2222*1111))>"
+e "<$(( +0x10 * +0x11 ))>"
+e "<$(( -0x10 * -0x11 ))>"
+e "<$(( -0x10 * -0x11 ))>"
+e "<$(( +64#10 * -64#11 ))>"
+e "<$(( +0x11 * +0x10 ))>"
+e "<$(( -0x11 * -0x10 ))>"
+e "<$(( -0x11 * -0x10 ))>"
+e "<$(( +64#11 * -64#10 ))>"
+e "<$((0x8000000000000000*-1))>"
+e "<$((0x8000000000000000*1))>"
+e "<$((0x7FFFFFFFFFFFFFFF*-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF*1))>"
+e "<$((0xFFFFFFFFFFFFFFFF*-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF*1))>"
+e "<$((0x8000000000000000*-11))>"
+e "<$((0x8000000000000000*11))>"
+e "<$((0x7FFFFFFFFFFFFFFF*-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF*11))>"
+e "<$((0xFFFFFFFFFFFFFFFF*-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF*11))>"
+e '= BIN /'
+e "<$(( 0 / 1 ))>"
+e "<$((1/1))>"
+e "<$(( 1 / 1 ))>"
+e "<$((1111/2222))>"
+e "<$((2222/1111))>"
+e "<$(( +0x10 / +0x11 ))>"
+e "<$(( -0x10 / -0x11 ))>"
+e "<$(( -0x10 / -0x11 ))>"
+e "<$(( +64#10 / -64#11 ))>"
+e "<$(( +0x11 / +0x10 ))>"
+e "<$(( -0x11 / -0x10 ))>"
+e "<$(( -0x11 / -0x10 ))>"
+e "<$(( +64#11 / -64#10 ))>"
+e "<$((2/1))>"
+e "<$((3/1))>"
+e "<$((3/2))>"
+e "<$((3/3))>"
+e "<$((3/4))>"
+e "<$((-1/4))>"
+e "<$((0x8000000000000000/-1))>"
+e "<$((0x8000000000000000/1))>"
+e "<$((0x7FFFFFFFFFFFFFFF/-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF/1))>"
+e "<$((0xFFFFFFFFFFFFFFFF/-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF/1))>"
+e "<$((0x8000000000000000/-11))>"
+e "<$((0x8000000000000000/11))>"
+e "<$((0x7FFFFFFFFFFFFFFF/-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF/11))>"
+e "<$((0xFFFFFFFFFFFFFFFF/-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF/11))>"
+e '= BIN %'
+e "<$(( 0 % 1 ))>"
+e "<$((1%1))>"
+e "<$(( 1 % 1 ))>"
+e "<$((1111%2222))>"
+e "<$((2222%1111))>"
+e "<$(( +0x10 % +0x11 ))>"
+e "<$(( -0x10 % -0x11 ))>"
+e "<$(( -0x10 % -0x11 ))>"
+e "<$(( +64#10 % -64#11 ))>"
+e "<$(( +0x11 % +0x10 ))>"
+e "<$(( -0x11 % -0x10 ))>"
+e "<$(( -0x11 % -0x10 ))>"
+e "<$(( +64#11 % -64#10 ))>"
+e "<$((2%1))>"
+e "<$((3%1))>"
+e "<$((3%2))>"
+e "<$((3%3))>"
+e "<$((3%4))>"
+e "<$((-1%4))>"
+e "<$((0x8000000000000000%-1))>"
+e "<$((0x8000000000000000%1))>"
+e "<$((0x7FFFFFFFFFFFFFFF%-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF%1))>"
+e "<$((0xFFFFFFFFFFFFFFFF%-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF%1))>"
+e "<$((0x8000000000000000%-11))>"
+e "<$((0x8000000000000000%11))>"
+e "<$((0x7FFFFFFFFFFFFFFF%-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF%11))>"
+e "<$((0xFFFFFFFFFFFFFFFF%-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF%11))>"
+e '= BIN <<'
+e "<$((0<<0))>"
+e "<$(( 0 << 0 ))>"
+e "<$((0<<1))>"
+e "<$(( 0 << 1 ))>"
+e "<$((1<<0))>"
+e "<$(( 1 << 0 ))>"
+e "<$((1<<1))>"
+e "<$(( 1 << 1 ))>"
+e "<$((1111<<2222))>"
+e "<$((2222<<1111))>"
+e "<$(( +0x10 << +0x11 ))>"
+e "<$(( -0x10 << -0x11 ))>"
+e "<$(( -0x10 << -0x11 ))>"
+e "<$(( +64#10 << -64#11 ))>"
+e "<$(( +0x11 << +0x10 ))>"
+e "<$(( -0x11 << -0x10 ))>"
+e "<$(( -0x11 << -0x10 ))>"
+e "<$(( +64#11 << -64#10 ))>"
+e "<$(( +64 << +1024 ))>"
+e "<$((0x8000000000000000<<-1))>"
+e "<$((0x8000000000000000<<1))>"
+e "<$((0x7FFFFFFFFFFFFFFF<<-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF<<1))>"
+e "<$((0xFFFFFFFFFFFFFFFF<<-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF<<1))>"
+e "<$((0x8000000000000000<<-11))>"
+e "<$((0x8000000000000000<<11))>"
+e "<$((0x7FFFFFFFFFFFFFFF<<-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF<<11))>"
+e "<$((0xFFFFFFFFFFFFFFFF<<-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF<<11))>"
+e '= BIN >>'
+e "<$((0>>0))>"
+e "<$(( 0 >> 0 ))>"
+e "<$((0>>1))>"
+e "<$(( 0 >> 1 ))>"
+e "<$((1>>0))>"
+e "<$(( 1 >> 0 ))>"
+e "<$((1>>1))>"
+e "<$(( 1 >> 1 ))>"
+e "<$((1>>>1))>"
+e "<$(( 1 >>> 1 ))>"
+e "<$((1111>>2222))>"
+e "<$((2222>>1111))>"
+e "<$((1111>>>2222))>"
+e "<$((2222>>>1111))>"
+e "<$(( +0x10 >> +0x11 ))>"
+e "<$(( -0x10 >> -0x11 ))>"
+e "<$(( -0x10 >> -0x11 ))>"
+e "<$(( -0x10 >>> -0x11 ))>"
+e "<$(( +64#10 >> -64#11 ))>"
+e "<$(( +0x11 >> +0x10 ))>"
+e "<$(( -0x11 >> -0x10 ))>"
+e "<$(( -0x11 >> -0x10 ))>"
+e "<$(( +64#11 >> -64#10 ))>"
+e "<$(( +64 >> +1024 ))>"
+e "<$((0x8000000000000000>>-1))>"
+e "<$((0x8000000000000000>>1))>"
+e "<$((0x7FFFFFFFFFFFFFFF>>-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF>>1))>"
+e "<$((0xFFFFFFFFFFFFFFFF>>-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF>>1))>"
+e "<$((0x8000000000000000>>-11))>"
+e "<$((0x8000000000000000>>11))>"
+e "<$((0x7FFFFFFFFFFFFFFF>>-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF>>11))>"
+e "<$((0xFFFFFFFFFFFFFFFF>>-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF>>11))>"
+e "<$((0xFFFFFFFFFFFFFFFF>>>11))>"
+e '= BIN **'
+e "<$((0**1))>"
+e "<$((2**1))>"
+e "<$((2**2))>"
+e "<$((2**3))>"
+e "<$((2**4))>"
+e "<$((10**4))>"
+e "<$((10**10))>"
+e "<$((10**5+5))>"
+e "<$((10**(5+5)))>"
+e '= LOG OR'
+e "<$((0||0))>"
+e "<$(( 000  ||  0X0  ))>"
+e "<$((01 || 64#1))>"
+e "<$((01 || 64#1))>"
+e "<$((0x1234 || 4660))>"
+e "<$((0x1234 || 011064))>"
+s I3 J3;e "<$((I||J))>"
+s I3 J3;e "<$((  I 	  || 	 J   ))>"
+e "<$((0||1))>"
+e "<$((0||0000000000000000000000001))>"
+e "<$((1||2))>"
+e "<$((0x1234 || 04660))>"
+e "<$((0x1234 || 0x11064))>"
+s I J3;e "<$((I||J))>"
+s I=-10 J=-33;e "<$((I||J))>"
+s I=-33 J=-33;e "<$((I||J))>"
+s I=0 J=-33;e "<$((I||J))>"
+s I3 J=0;e "<$((I||J))>"
+e '= LOG AND'
+e "<$((0&&0))>"
+e "<$(( 000  &&  0X0  ))>"
+e "<$((01 && 64#1))>"
+e "<$((01 && 64#1))>"
+e "<$((0x1234 && 4660))>"
+e "<$((0x1234 && 011064))>"
+s I3 J3;e "<$((I&&J))>"
+s I3 J3;e "<$((  I 	  && 	 J   ))>"
+e "<$((0&&1))>"
+e "<$((0&&0000000000000000000000001))>"
+e "<$((1&&2))>"
+e "<$((0x1234 && 04660))>"
+e "<$((0x1234 && 0x11064))>"
+s I J3;e "<$((I&&J))>"
+s I=-10 J=-33;e "<$((I&&J))>"
+s I=-33 J=-33;e "<$((I&&J))>"
+s I=0 J=-33;e "<$((I&&J))>"
+s I3 J=0;e "<$((I&&J))>"
+e '= BIN BIT_OR'
+e "<$((0|0))>"
+e "<$(( 0 | 0 ))>"
+e "<$((0|1))>"
+e "<$(( 0 | 1 ))>"
+e "<$((1|0))>"
+e "<$(( 1 | 0 ))>"
+e "<$((1|1))>"
+e "<$(( 1 | 1 ))>"
+e "<$((1111|2222))>"
+e "<$((2222|1111))>"
+e "<$(( +0x10 | +0x11 ))>"
+e "<$(( -0x10 | -0x11 ))>"
+e "<$(( -0x10 | -0x11 ))>"
+e "<$(( +64#10 | -64#11 ))>"
+e "<$(( +0x11 | +0x10 ))>"
+e "<$(( -0x11 | -0x10 ))>"
+e "<$(( -0x11 | -0x10 ))>"
+e "<$(( +64#11 | -64#10 ))>"
+e "<$(( +64 | +1024 ))>"
+e "<$((0x8000000000000000|-1))>"
+e "<$((0x8000000000000000|1))>"
+e "<$((0x7FFFFFFFFFFFFFFF|-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF|1))>"
+e "<$((0xFFFFFFFFFFFFFFFF|-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF|1))>"
+e "<$((0x8000000000000000|-11))>"
+e "<$((0x8000000000000000|11))>"
+e "<$((0x7FFFFFFFFFFFFFFF|-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF|11))>"
+e "<$((0xFFFFFFFFFFFFFFFF|-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF|11))>"
+e '= BIN BIT_XOR'
+e "<$((0^0))>"
+e "<$(( 0 ^ 0 ))>"
+e "<$((0^1))>"
+e "<$(( 0 ^ 1 ))>"
+e "<$((1^0))>"
+e "<$(( 1 ^ 0 ))>"
+e "<$((1^1))>"
+e "<$(( 1 ^ 1 ))>"
+e "<$((1111^2222))>"
+e "<$((2222^1111))>"
+e "<$(( +0x10 ^ +0x11 ))>"
+e "<$(( -0x10 ^ -0x11 ))>"
+e "<$(( -0x10 ^ -0x11 ))>"
+e "<$(( +64#10 ^ -64#11 ))>"
+e "<$(( +0x11 ^ +0x10 ))>"
+e "<$(( -0x11 ^ -0x10 ))>"
+e "<$(( -0x11 ^ -0x10 ))>"
+e "<$(( +64#11 ^ -64#10 ))>"
+e "<$(( +64 ^ +1024 ))>"
+e "<$((0x8000000000000000^-1))>"
+e "<$((0x8000000000000000^1))>"
+e "<$((0x7FFFFFFFFFFFFFFF^-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF^1))>"
+e "<$((0xFFFFFFFFFFFFFFFF^-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF^1))>"
+e "<$((0x8000000000000000^-11))>"
+e "<$((0x8000000000000000^11))>"
+e "<$((0x7FFFFFFFFFFFFFFF^-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF^11))>"
+e "<$((0xFFFFFFFFFFFFFFFF^-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF^11))>"
+e '= BIN BIT_AND'
+e "<$((0&0))>"
+e "<$(( 0 & 0 ))>"
+e "<$((0&1))>"
+e "<$(( 0 & 1 ))>"
+e "<$((1&0))>"
+e "<$(( 1 & 0 ))>"
+e "<$((1&1))>"
+e "<$(( 1 & 1 ))>"
+e "<$((1111&2222))>"
+e "<$((2222&1111))>"
+e "<$(( +0x10 & +0x11 ))>"
+e "<$(( -0x10 & -0x11 ))>"
+e "<$(( -0x10 & -0x11 ))>"
+e "<$(( +64#10 & -64#11 ))>"
+e "<$(( +0x11 & +0x10 ))>"
+e "<$(( -0x11 & -0x10 ))>"
+e "<$(( -0x11 & -0x10 ))>"
+e "<$(( +64#11 & -64#10 ))>"
+e "<$(( +64 & +1024 ))>"
+e "<$((0x8000000000000000&-1))>"
+e "<$((0x8000000000000000&1))>"
+e "<$((0x7FFFFFFFFFFFFFFF&-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF&1))>"
+e "<$((0xFFFFFFFFFFFFFFFF&-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF&1))>"
+e "<$((0x8000000000000000&-11))>"
+e "<$((0x8000000000000000&11))>"
+e "<$((0x7FFFFFFFFFFFFFFF&-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF&11))>"
+e "<$((0xFFFFFFFFFFFFFFFF&-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF&11))>"
+e '= BIN EQ'
+e "<$((0==0))>"
+e "<$(( 000  ==  0X0  ))>"
+e "<$((01 == 64#1))>"
+e "<$((01 == 64#1))>"
+e "<$((0x1234 == 4660))>"
+e "<$((0x1234 == 011064))>"
+s I3 J3;e "<$((I==J))>"
+s I3 J3;e "<$((  I 	  == 	 J   ))>"
+e "<$((0==1))>"
+e "<$((0=00000000000000000000001))>"
+e "<$((1==2))>"
+e "<$((0x1234 == 04660))>"
+e "<$((0x1234 == 0x11064))>"
+s I J3;e "<$((I==J))>"
+s I=-10 J=-33;e "<$((I==J))>"
+s I=-33 J=-33;e "<$((I==J))>"
+e '= BIN NE'
+e "<$((0!=0))>"
+e "<$(( 000  !=  0X0  ))>"
+e "<$((01 != 64#1))>"
+e "<$((01 != 64#1))>"
+e "<$((0x1234 != 4660))>"
+e "<$((0x1234 != 011064))>"
+s I3 J3;e "<$((I!=J))>"
+s I3 J3;e "<$((  I 	  != 	 J   ))>"
+e "<$((0!=1))>"
+e "<$((0!00000000000000000000001))>"
+e "<$((1!=2))>"
+e "<$((0x1234 != 04660))>"
+e "<$((0x1234 != 0x11064))>"
+s I J3;e "<$((I!=J))>"
+s I=-10 J=-33;e "<$((I!=J))>"
+s I=-33 J=-33;e "<$((I!=J))>"
+e '= BIN LE'
+e "<$((0<=0))>"
+e "<$(( 000  <=  0X0  ))>"
+e "<$((01 <= 64#1))>"
+e "<$((01 <= 64#2))>"
+e "<$((02 <= 64#1))>"
+e "<$((0x1234 <= 4660))>"
+e "<$((0x1234 <= 011064))>"
+e "<$((0x1233 <= 011064))>"
+e "<$((0x1235 <= 011064))>"
+s I3 J3;e "<$((I<=J))>"
+s I3 J3;e "<$((I<=J))>"
+s I2 J3;e "<$((I<=J))>"
+s I4 J3;e "<$((I<=J))>"
+s I=-33 J=-33;e "<$((I<=J))>"
+s I=-33 J=-33;e "<$((I<=J))>"
+s I=-32 J=-33;e "<$((I<=J))>"
+s I=-34 J=-33;e "<$((I<=J))>"
+e '= BIN GE'
+e "<$((0>=0))>"
+e "<$(( 000  >=  0X0  ))>"
+e "<$((01 >= 64#1))>"
+e "<$((01 >= 64#2))>"
+e "<$((02 >= 64#1))>"
+e "<$((0x1234 >= 4660))>"
+e "<$((0x1234 >= 011064))>"
+e "<$((0x1233 >= 011064))>"
+e "<$((0x1235 >= 011064))>"
+s I3 J3;e "<$((I>=J))>"
+s I3 J3;e "<$((I>=J))>"
+s I2 J3;e "<$((I>=J))>"
+s I4 J3;e "<$((I>=J))>"
+s I=-33 J=-33;e "<$((I>=J))>"
+s I=-33 J=-33;e "<$((I>=J))>"
+s I=-32 J=-33;e "<$((I>=J))>"
+s I=-34 J=-33;e "<$((I>=J))>"
+e '= BIN LT'
+e "<$((0<0))>"
+e "<$(( 000  <  0X0  ))>"
+e "<$((01 < 64#1))>"
+e "<$((01 < 64#2))>"
+e "<$((02 < 64#1))>"
+e "<$((0x1234 < 4660))>"
+e "<$((0x1234 < 011064))>"
+e "<$((0x1233 < 011064))>"
+e "<$((0x1235 < 011064))>"
+s I3 J3;e "<$((I<J))>"
+s I3 J3;e "<$((I<J))>"
+s I2 J3;e "<$((I<J))>"
+s I4 J3;e "<$((I<J))>"
+s I=-33 J=-33;e "<$((I<J))>"
+s I=-33 J=-33;e "<$((I<J))>"
+s I=-32 J=-33;e "<$((I<J))>"
+s I=-34 J=-33;e "<$((I<J))>"
+e '= BIN GT'
+e "<$((0>0))>"
+e "<$(( 000  >  0X0  ))>"
+e "<$((01 > 64#1))>"
+e "<$((01 > 64#2))>"
+e "<$((02 > 64#1))>"
+e "<$((0x1234 > 4660))>"
+e "<$((0x1234 > 011064))>"
+e "<$((0x1233 > 011064))>"
+e "<$((0x1235 > 011064))>"
+s I3 J3;e "<$((I>J))>"
+s I3 J3;e "<$((I>J))>"
+s I2 J3;e "<$((I>J))>"
+s I4 J3;e "<$((I>J))>"
+s I=-33 J=-33;e "<$((I>J))>"
+s I=-33 J=-33;e "<$((I>J))>"
+s I=-32 J=-33;e "<$((I>J))>"
+s I=-34 J=-33;e "<$((I>J))>"
+#
+# COMMA below
+e '= PRECEDENCE I'
+e "<$(( 1 + 2 + 3 ))>"
+e "<$(( 1 - 2 + 3 ))>"
+e "<$(( 3 - 2 - 1 ))>"
+e "<$(( 3 - 2 + 1 ))>"
+e "<$(( - 2 + 1 ))>"
+e "<$(( 2 + -1 ))>"
+e "<$(( ! 2 + 1 ))>"
+e "<$(( 2 + !1 ))>"
+e "<$(( 3 * 2 + 2 ))>"
+e "<$(( 3 + 2 * 2 ))>"
+e "<$(( 3 * 2 * 2 ))>"
+e "<$(( 9 / 3 + 2 ))>"
+e "<$(( 9 + 3 / 2 ))>"
+e "<$(( 9 / 3 / 2 ))>"
+e "<$(( 9 << 1 + 2 ))>"
+e "<$(( 9 + 3 << 2 ))>"
+e "<$(( 9 << 3 << 2 ))>"
+e "<$(( 9 >> 1 + 2 ))>"
+e "<$(( 9 + 3 >> 2 ))>"
+e "<$(( 19 >> 3 >> 1 ))>"
+e "<$(( 19 >> 3 << 1 ))>"
+e "<$(( 19 << 3 >> 1 ))>"
+e "<$(( 2 + 3 < 3 * 2 ))>"
+e "<$(( 2 << 3 >= 3 << 2 ))>"
+e "<$(( 0xfD & 0xF == 0xF ))>"
+e "<$((0xfD&0xF==0xF))>"
+e "<$(( 3 * 7 , 2 << 8 ,  9 - 7 ))>"
+e "<$((3*7,2<<8,9-7))>"
+e '= PARENS'
+e "<$(((1 + 2) + 3))>"
+e "<$(((1+2)+3))>"
+e "<$((1 - (2 + 3)))>"
+e "<$((1-(2+3)))>"
+e "<$((3 - (2 - 1)))>"
+e "<$((3-(2-1)))>"
+e "<$((3 - ( 2 + 1 )))>"
+e "<$((3-(2+1)))>"
+e "<$((- (2 + 1)))>"
+e "<$((-(2+1)))>"
+e "<$((! (2 + 1)))>"
+e "<$((!(2+1)))>"
+e "<$((3 * (2 + 2)))>"
+e "<$((3*(2+2)))>"
+e "<$(((3 + 2) * 2))>"
+e "<$(((3+2)*2))>"
+e "<$((3 * (2 * 2)))>"
+e "<$((3*(2*8)))>"
+e "<$((9 / (3 + 2)))>"
+e "<$((9/(3+2)))>"
+e "<$((( 9 + 3 ) / 2))>"
+e "<$(((9+3)/2))>"
+e "<$((9 / ( 3 / 2 )))>"
+e "<$((9/(3/2)))>"
+e "<$((( 9 << 1 ) + 2))>"
+e "<$(((9<<1)+2))>"
+e "<$((9 + (3 << 2)))>"
+e "<$((9+(3<<2)))>"
+e "<$((9 << (3 << 2)))>"
+e "<$((9<<(3<<2)))>"
+e "<$(((9 >> 1) + 2))>"
+e "<$(((9>>1)+2))>"
+e "<$((9 + (3 >> 2)))>"
+e "<$((9+(3>>2)))>"
+e "<$((19 >> (3 >> 1)))>"
+e "<$((19>>(3>>1)))>"
+e "<$((19 >> (3 << 1)))>"
+e "<$((19>>(3<<1)))>"
+e "<$((19 << (3 >> 1)))>"
+e "<$((19<<(3>>1)))>"
+e "<$((2 + (3 < 3) * 2))>"
+e "<$((2+(3<3)*2))>"
+e "<$((2 << ((3 >= 3) << 2)))>"
+e "<$((2<<((3>=3)<<2)))>"
+e "<$(((0xfD & 0xF) == 0xF))>"
+e "<$(((0xfD&0xF)==0xF))>"
+e "<$((3 * (7 , 2) << (8 ,  9 - 7)))>"
+e "<$((3*(7,2)<<(8,9-7)))>"
+#
+# COND BELOW
+e '= ASSIGN I'
+unset I;p "<$(( I = 3 ))>";e "<$I>"
+unset I;p "<$((I=3))>";e "<$I>"
+s I;p "<$((I=3))>";e "<$I>"
+s I;p "<$((I+=1))>";e "<$I>"
+s I;p "<$((I-=1))>";e "<$I>"
+s I;p "<$((I*=1))>";e "<$I>"
+s I;p "<$((I*=2))>";e "<$I>"
+s I;p "<$((I/=1))>";e "<$I>"
+s I;p "<$((I/=2))>";e "<$I>"
+s I;p "<$((I%=1))>";e "<$I>"
+s I;p "<$((I%=2))>";e "<$I>"
+s I;p "<$((I**=1))>";e "<$I>"
+s I;p "<$((I**=2))>";e "<$I>"
+s I;p "<$((I**=1+1))>";e "<$I>"
+s I;p "<$((I|=1))>";e "<$I>"
+s I;p "<$((I^=1))>";e "<$I>";p "<$((I^=1))>";e "<$I>"
+s I;p "<$((I&=2))>";e "<$I>"
+s I;p "<$((I>>=1))>";e "<$I>"
+s I;p "<$((I<<=1))>";e "<$I>"
+s I=-1;p "<$((I>>>=1))>";e "<$I>"
+e '= ASSIGN II'
+s I=2;p "<$(((I+=1)-1))>";e "<$I>"
+s I=4;p "<$(((I-=1)+1))>";e "<$I>"
+s I=0 J=0;p "<$(((I=5)*(J=7)+1))>";e "<$I><$J>"
+s I™ J;p "<$(((I+=1)*(J-=2)+1))>";e "<$I><$J>"
+s I;p "<$((I=2,I|=1))>";e "<$I>"
+s I=0 J=0 Y=0 Z=0;p "<$((I=1,J=2,Y=3,Z=4,Z+=I+J+Y))>";e "<$I><$J><$Y><$Z>"
+e '= POSTFIX'
+s I=1;p "<$((I++))>";e "<$I>"
+s I=1 J=0;p "<$((J=I++))>";e "<$I><$J>"
+s I=1 J;p "<$((J++*I++))>";e "<$I><$J>"
+s I=1 J;p "<$(((J++)*(I++)))>";e "<$I><$J>"
+s I=1;p "<$((I--))>";e "<$I>"
+s I=1 J=0;p "<$((J=I--))>";e "<$I><$J>"
+s I=1 J;p "<$((J--*I--))>";e "<$I><$J>"
+s I=1 J;p "<$(((J--)*(I--)))>";e "<$I><$J>"
+e '= PREFIX'
+s I=1;p "<$((++I))>";e "<$I>"
+s I=1 J=0;p "<$((J=++I))>";e "<$I><$J>"
+s I=1 J;p "<$((++J*++I))>";e "<$I><$J>"
+s I=1 J;p "<$((++(J)*++(I)))>";e "<$I><$J>"
+s I=1 J;p "<$(((++J)*(++I)))>";e "<$I><$J>"
+s I=1;p "<$((--I))>";e "<$I>"
+s I=1 J=0;p "<$((J=--I))>";e "<$I><$J>"
+s I=2 J;p "<$((--J*--I))>";e "<$I><$J>"
+s I=1 J;p "<$((--(J)*--(I)))>";e "<$I><$J>"
+s I=1 J;p "<$(((--J)*(--I)))>";e "<$I><$J>"
+e '= VAR RECUR'
+s I='1 + 1';p "<$((I))>";e "<$I>"
+s I='1 + 1';p "<$((+I))>";e "<$I>"
+s I='1 + 1';p "<$((++I))>";e "<$I>"
+s I='1 + 1';p "<$((I++))>";e "<$I>"
+s I='1 + 1';p "<$((1+I))>";e "<$I>"
+s I='1 + 1 * 2';p "<$((I+1))>";e "<$I>"
+s I='(1 + 1) * 2';p "<$((I+1))>";e "<$I>"
+s I='1 + 1' J='3 / 2';p "<$((I=I+J))>";e "<$I><$J>"
+s I='1 + 1';p "<$((I=I))>";e "<$I>"
+s I='1 + 1';p "<$((I=+I))>";e "<$I>"
+s I='1 + 1';p "<$((I=1+I))>";e "<$I>"
+s I='1 + 1 * 2';p "<$((I=I+1))>";e "<$I>"
+s I='(1 + 1) * 2';p "<$((I=I+1))>";e "<$I>"
+s I='1 + 1' J='3 / 2';p "<$((I+=I+J))>";e "<$I><$J>"
+e '= COMMA'
+e "<$(( 1 , 2 ))>"
+e "<$(( 1 , 2 , 3 ))>"
+e "<$(( 1 , 2	,	3 , 4 ))>"
+e "<$((1,2,3,4))>"
+s I='1 + 1';p "<$(( I , I+=I, I=I**2, I/=3 ))>";e "<$I>"
+s I1=I2 I2=3;p "<$((I1,I2))>";e "<$I1><$I2>"
+e '= COND'
+e "<$(( +0 ? 2 : 3 ))>"
+e "<$((-0?2:3))>"
+e "<$(( +1 ? 2 : 3 ))>"
+e "<$(( 1-1 ? 2 : 3 ))>"
+e "<$(( 1-0 ? 2 : 3 ))>"
+e "<$((-1?2:3))>"
+e "<$(( 0x1234 ? 111 : 222 ))>"
+e "<$((1**2 ? 5 : 7))>"
+e "<$((0**2 ? 5 : 7))>"
+e "<$((0**2>=0?5:7))>"
+e "<$((-1<=0**2?5:7))>"
+e "<$((1<=0**2?5:7))>"
+e "<$((1>2||1*0?5:7))>"
+e "<$((1>2&&1*0?5:7))>"
+e "<$((1<2&&1*0?5:7))>"
+e "<$((1<2&&1*0+1?5:7))>"
+e '-- COND .2'
+e "<$(( 1 < 2 ? -1 : 1 > 2 ? 1 : 0 ))>"
+e "<$((1 < 1 ? -1 : 1 > 1 ? 1 : 0))>"
+e "<$((2<1?-1:2>1?1:0))>"
+e "<$((4<5 ? 1 : 32))>"
+e "<$((4>5 ? 1 : 32))>"
+e "<$((4>(2+3) ? 1 : 32))>"
+e "<$((4<(2+3) ? 1 : 32))>"
+e "<$(((2+2)<(2+3) ? 1 : 32))>"
+e "<$(((2+2)>(2+3) ? 1 : 32))>"
+## grouping protects precedence in : parts (syntax error tests below)
+e '-- COND .3'
+e "<$((1-1 < 1 ? 2,4 : 1,3))>"
+e "<$((0<1?2,4:(1,3)))>"
+e "<$((0,1,2,0?2,4:1,3))>"
+e "<$((0,1,2,1?2,4:1,3))>"
+e "<$((0,1,2,0?2,4:(1,3)))>"
+e "<$((0,1,2,1?2,4:(1,3)))>"
+e "<$((0,1,2,0?(2,4):1,3))>"
+e "<$((0,1,2,1?(2,4):1,3))>"
+e "<$((0,1,2,0?(2,4):(1,3)))>"
+e "<$((0,1,2,1?(2,4):(1,3)))>"
+e "<$((0?2:((0,3)?1:4)))>"
+e "<$((1?2:3,0?1:4))>"
+e "<$((1?2:3,0?1:4?5:6))>"
+e "<$((1?2:(3,0)?1:4?5:6))>"
+e "<$((1?2:3,0?4,5:5,6?7,8:9,10))>"
+e "<$((1?2:(3,0)?4,5:5,6?7,8:9,10))>"
+e "<$((1?2:(3,0)?(4,5):5,6?7,8:9,10))>"
+e "<$((1?2:(3,0)?(4,5):(5,6)?7,8:9,10))>"
+e "<$((1?2:(3,0)?(4,5):(5,6)?(7,8):9,10))>"
+e "<$((1?2:(3,0)?(4,5):(5,6)?(7,8):(9,10)))>"
+e "<$((1?2:3,1?4,5:5,6?7,8:9,10))>"
+e "<$((1?2:(3,1)?4,5:5,6?7,8:9,10))>"
+e "<$((1?2:(3,1)?(4,5):5,6?7,8:9,10))>"
+e "<$((1?2:(3,1)?(4,5):(5,6)?7,8:9,10))>"
+e "<$((1?2:(3,1)?(4,5):(5,6)?(7,8):9,10))>"
+e "<$((1?2:(3,1)?(4,5):(5,6)?(7,8):(9,10)))>"
+e "<$((0?2:(3,1)?(4,5):(5,6)?(7,8):(9,10)))>"
+e "<$((0?2:(3,1)?4,5:(5,6)?7,8:(9,10)))>"
+e "<$((0?2:(3,0)?(4,5):(5,6)?(7,8):(9,10)))>"
+e "<$((0?2:(3,0)?4,5:(5,6)?7,8:(9,10)))>"
+e "<$((0?2:(3,0)?(4,5):(5,0)?(7,8):(9,10)))>"
+e "<$((0?2:(3,0)?4,5:(5,0)?7,8:(9,10)))>"
+e "<$((0?2:3,0?4,5:(5,0)?7,8:(9,10)))>"
+e "<$((0?2:(3,0)?4,5:5,0?7,8:(9,10)))>"
+e "<$((0?2:(3,0)?4,5:(5,0)?7,8:9,10))>"
+e '-- COND .4'
+e "<$((1?2?3?4?5:6:7:8:9))>"
+e "<$((1?2?3?0?5:6:7:8:9))>"
+e "<$((1?2?0?0?5:6:7:8:9))>"
+e "<$((1?0?0?0?5:6:7:8:9))>"
+e "<$((0?0?0?0?5:6:7:8:9))>"
+e "<$((0?3+4?10:11:5+6?12:13))>"
+e "<$((1?3+4?10:11:5+6?12:13))>"
+e "<$((0?(3+4)?(10):(11):((5+6)?12:13)))>"
+e "<$((1?(3+4)?(10):(11):((5+6)?12:13)))>"
+e '-- COND .5'
+e "<$((0?3+4?10:11?20+1:22*1:5+6?12:13))>"
+e "<$((1?3+4?10:11?20+1:22*1:5+6?12:13))>"
+e "<$((0?(3+4)?(10):(11)?(20+1):(22*1):((5+6)?12:13)))>"
+e "<$((1?(3+4)?(10):(11)?(20+1):(22*1):((5+6)?12:13)))>"
+e '-- COND .6'
+e "<$((0?3+4?9:11?20+1:22*1:5+6?12:13))>"
+e "<$((1?3+4?9:11?20+1:22*1:5+6?12:13))>"
+e "<$((0?10+11?20+1?22*1?23**1:24**1:25/1?26%27:56>>1:-1:-2))>"
+e "<$((1?0?20+1?22*1?23**1:24**1:25/1?26%27:56>>1:-1:-2))>"
+e "<$((1?10?20+1?22*1?23**1:24**1:25/1?26%27:56>>1:-1:-2))>"
+e "<$((1?10?0?22*1?23**1:24**1:25/1?26%27:56>>1:-1:-2))>"
+e "<$((1?10?20?0?23**1:24**1:25/1?26%27:56>>1:-1:-2))>"
+e "<$((1?10?20?22*1?0:24**1:25/1?26%27:56>>1:-1:-2))>"
+e "<$((1?10?20?22*1?23**1:0:25/1?26%27:56>>1:-1:-2))>"
+e "<$((1?10?20?22*1?23**1:24**1:0?26%27:56>>1:-1:-2))>"
+e "<$((1?10?20?22*1?23**1:24**1:25/1?0:56>>1:-1:-2))>"
+e '-- COND .7'
+s I1=2 I2=3 I3=4 I4=5;\
+   p "<$(( (I1 < I2) ? (I2 < I3) ? I3 *= I3 : (I2 *= I2) : (I1 *= I1)))>";\
+   e "<$I1><$I2><$I3><$I4>"
+s I1=2 I2=3 I3=4 I4=5;\
+   p "<$(( (I1 < I2) ? ((I2 < I3) ? I3 *= I3 : (I2 *= I2)) : (I1 *= I1)))>";\
+   e "<$I1><$I2><$I3><$I4>"
+s I1=2 I2=3 I3=4 I4=5;\
+   p "<$((((I1<I2)?((I2<I3)?(I3*=I3):(I2*=I2)):(I1*=I1))))>";\
+   e "<$I1><$I2><$I3><$I4>"
+s I1=2 I2=3 I3=4 I4=5;\
+p "<$(((I1<I2)?(I2<I3)?(I3<I4)?I4*=I4:(I3*=I3):(I2*=I2):(I1*=I1)))>";\
+   e "<$I1><$I2><$I3><$I4><$I5>"
+# only first
+s I1=2 I2=3 I3=4 I4=5;\
+   p "<$(( (I1 < I2) ? (I2 > I3) ? I3 *= I3 : (I2 *= I2) : (I1 *= I1)))>";\
+   e "<$I1><$I2><$I3><$I4>"
+s I1=2 I2=3 I3=4 I4=5;\
+   p "<$(((I1<I2)?(I2>I3)?I3*=I3:(I2*=I2):(I1*=I1)))>";\
+   e "<$I1><$I2><$I3><$I4>"
+s I1=2 I2=3 I3=4 I4=5;\
+   p "<$(( (I1 < I2) ? ((I2 > I3) ? I3 *= I3 : (I2 *= I2)) : (I1 *= I1)))>";\
+   e "<$I1><$I2><$I3><$I4>"
+s I1=2 I2=3 I3=4 I4=5;\
+   p "<$(( ((I1 < I2) ? ((I2 > I3) ? (I3 *= I3):(I2 *= I2)):(I1 *= I1))))>";\
+   e "<$I1><$I2><$I3><$I4>"
+s I1=2 I2=3 I3=4 I4=5;\
+p "<$(((I1<I2)?(I2>I3)?(I3>I4)?I4*=I4:(I3*=I3):(I2*=I2):(I1*=I1)))>";\
+   e "<$I1><$I2><$I3><$I4>"
+# last not etc.
+s I1=2 I2=3 I3=4 I4=5;\
+p "<$(((I1<I2)?(I2<I3)?(I3>I4)?I4*=I4:(I3*=I3):(I2*=I2):(I1*=I1)))>";\
+   e "<$I1><$I2><$I3><$I4>"
+s I1=2 I2=3 I3=4 I4=5;\
+p "<$(((I1<I2)?(I2>I3)?(I3<I4)?I4*=I4:(I3*=I3):(I2*=I2):(I1*=I1)))>";\
+   e "<$I1><$I2><$I3><$I4><$I5>"
+s I1=2 I2=3 I3=4 I4=5;\
+p "<$(((I1>I2)?(I2<I3)?(I3<I4)?I4*=I4:(I3*=I3):(I2*=I2):(I1*=I1)))>";\
+   e "<$I1><$I2><$I3><$I4><$I5>"
+e '-- COND .8'
+s I=0;p "<$((1?I=2:(I=3),8,10))>";e "<$I>"
+s I=0;p "<$((1?20:(I+=2)))>";e "<$I>"
+s I=0;p "<$((1?I+:(I+=2)))>";e "<$I>"
+s I=0;p "<$((0?I+=2:20))>";e "<$I>"
+s I=0;p "<$((0?I+=2:(I+)))>";e "<$I>"
+s I=0;p "<$((0?(I+=2):(20)))>";e "<$I>"
+s I=0;p "<$((0?(I+=2):(I+ )))>";e "<$I>"
+e '-- COND .9'
+s I1=+E+ I2=1+1;p "<$((0?I1:I2))>";e "<$I1><$I2>"
+s I1=1+1 I2=+E+;p "<$((1?I1:I2))>";e "<$I1><$I2>"
+s I1=+E+ I2=1+1;p "<$((0?I1=1:(I2=2)))>";e "<$I1><$I2>"
+s I1=1+1 I2=+E+;p "<$((1?I1=1:(I2=2)))>";e "<$I1><$I2>"
+s I1=+E+ I2=1+1;p "<$((0?I1*=I1:(I2*=I2)))>";e "<$I1><$I2>"
+s I1=1+1 I2=+E+;p "<$((1?I1*=I1:(I2*=I2)))>";e "<$I1><$I2>"
+e '-- COND .10'
+s I1=+E+ I2=+E+ I3=+E+ I4=-1;p "<$((0?I1?I2:I3:I4))>";e "<$I1><$I2><$I3><$I4>"
+s I1=1 I2=2 I3=+E+ I4=+E+;p "<$((1?I1?I2:I3:I4))>";e "<$I1><$I2><$I3><$I4>"
+s I1=0 I2=+E+ I3=3 I4=+E+;p "<$((1?I1?I2:I3:I4))>";e "<$I1><$I2><$I3><$I4>"
+e '= WILD I'
+e "<$((  3          +           (      11       )  ))>"
+e "<$((1 + (2 - 2)))>"
+e "<$((1 + (2 - 2)))>"
+e "<$(( (( 3 / 3 )) + ((1*1*1)) - (( 7 % 6 ))))>"
+e "<$(( 3+((2 * 2))/6 ))>"
+e "<$(( 1 + 1 - 3 * 3 + 99-88 / 17))>"
+e "<$(( 1 << 2 % 1+2 * 4 - (2 + 2 + 1) * 6 / 7 + 4 * 2 + (81/9)))>"
+s I1=I2 I2=3;p "<$((I1 + I2))>";e "<$I1><$I2>"
+s I1=I2 I2=3;p "<$((I1 * I2))>";e "<$I1><$I2>"
+s I1=I2 I2=3;p "<$((I1 % I2))>";e "<$I1><$I2>"
+e '= WILD II'
+s I;p "<$((3+(3*(I))))>";e "<$I>"
+s I;p "<$((3+(3*(I++))))>";e "<$I>"
+s I;p "<$((3+(3*(I,I++))))>";e "<$I>"
+s I;p "<$((3+(3*(I,++I))))>";e "<$I>"
+s I;p "<$((3+(3*(I,++++I))))>";e "<$I>"
+s I;p "<$((3+(3*(I,+++++++++++++++++++++++-+++++I))))>";e "<$I>"
+e "<$((3+(3*(+++++++++++++++++++++++-+++++10))))>"
+s I;p "<$(( +10 + + +I ))>";e "<$I>"
+s I;p "<$(( +10 + ++I ))>";e "<$I>"
+s I;p "<$(( +10 ++ +I ))>";e "<$I>"
+s I;p "<$(( +10 +++ I ))>";e "<$I>"
+s I;p "<$(( +10+++I ))>";e "<$I>"
+s I;p "<$((+10++I))>";e "<$I>"
+s I;p "<$((+10 + + + ++++ +I))>";e "<$I>"
+e "<$(( +10 + + + ++++ +11 ))>"
+e "<$(( +10 + + + ++++ ++11 ))>"
+e "<$((+10++++++++11))>"
+e '= WILD RECUR' # (some yet)
+s I1=I2 I2=5;p "<$((I1+=I2))>";e "<$I1><$I2>"
+s I1=I2 I2=5 I3=I2+=1;p "<$((I1))>";e "<$I1><$I2><$I3>"
+s I1=I2 I2=5 I3=I2+=1;p "<$((I1,I3))>";e "<$I1><$I2><$I3>"
+s I1=I2 I2=5 I3=I2+=1;p "<$((I1+I3))>";e "<$I1><$I2><$I3>"
+s I1=I2 I2=5 I3=I2+=1;p "<$((I1?I1:I3))>";e "<$I1><$I2><$I3>"
+s I1=I2=0 I2=5 I3=I2+=1;p "<$((I1?I1:I3))>";e "<$I1><$I2><$I3>"
+s I1=I1 I2=5 I3=I2+=1;p "<$((I1=0?I1:I3))>";e "<$I1><$I2><$I3>"
+s I1=I1 I2=5 I3=I2+=1;p "<$((I1=1?I1:I3))>";e "<$I1><$I2><$I3>"
+s I1=I2='(I2)+1' I2=5 I3=I2+=1;p "<$((I1,I3))>";e "<$I1><$I2><$I3>"
+s I1=I2='(I2=(I2)+1)' I2=5 I3=I2+=1;p "<$((I1,I3))>";e "<$I1><$I2><$I3>"
+s I1=I2 I2=5 I3=I2+=1;p "<$((I1+I3*I1*I3/I1%I3))>";e "<$I1><$I2><$I3>"
+s I1=I2 I2=5 I3=I2+=1;p "<$((I1+I3*I1*I3/I1%I3))>";e "<$I1><$I2><$I3>"
+s I1=I2=+E+ I2=5;p "<$((I1))>";e "<$I1><$I2>"
+s I1=I2=+E+ I2=5;p "<$((0?I1:++I2))>";e "<$I1><$I2>"
+s I1=I2 I2=5;p "<$((I2,(1?I1:++I2)))>";e "<$I1><$I2>"
+s I1=5 I2 I3 ;p "<$((I1-=5,1?I2:I3))>";e "<$I1><$I2><$I3>"
+s I1=5 Ix=6 I2 I3 ;p "<$((I1=Ix,1?I2:I3))>";e "<$I1><$I2><$I3>"
+s I1=5 Ix=6 I2 I3 ;p "<$((I1=Ix?I2:I3))>";e "<$I1><$I2><$I3>"
+s I1=5 Ix=6 I2 I3 ;p "<$((I1*=Ix?I2:I3))>";e "<$I1><$I2><$I3>"
+s I1=5 Ix=6 I2 I3 ;p "<$((0,I1*=Ix?I2:I3))>";e "<$I1><$I2><$I3>"
+s I1=5 Ix=6 I2 I3 ;p "<$((I1*=Ix?I2:I3,Ix!,I1*=Ix?I2:I3))>";e "<$I1><$I2><$I3>"
diff --git a/shell/hush_test/hush-arith/bigbadbison.right b/shell/hush_test/hush-arith/bigbadbison.right
new file mode 100644
index 0000000000..a6446c81cd
--- /dev/null
+++ b/shell/hush_test/hush-arith/bigbadbison.right
@@ -0,0 +1,880 @@
+= BASE
+<0>
+<0>
+<1>
+<0>
+<0>
+<0>
+<0>
+<1>
+<1>
+<1>
+<0>
+<10>
+<9191919191919>
+<13>
+<11>
+<1023>
+<1295>
+<1295>
+<9322365>
+<16242915>
+<10>
+<33>
+<10>
+<33>
+<1>
+<1>
+<1>
+<33>
+<33>
+<33>
+<33>
+= UNA PLUS/MINUS
+<0>
+<0>
+<1>
+<1>
+<4221>
+<16929>
+<16242915>
+<16242915>
+<1>
+<1>
+<1>
+<0>
+<0>
+<-1>
+<-1>
+<-4221>
+<-16929>
+<-16242915>
+<-16242915>
+<-1>
+<-1>
+<-1>
+<-1>
+<1>
+<-1>
+= UNA !
+<1>
+<1>
+<0>
+<0>
+<1>
+<0>
+= UNA ~
+<-1>
+<-1>
+<-2>
+<-2>
+<-2276>
+<0>
+<0>
+<-1>
+<-1>
+<-1>
+<-1>
+= BIN +
+<0>
+<0>
+<1>
+<1>
+<1>
+<1>
+<2>
+<2>
+<2>
+<-2>
+<3333>
+<3333>
+<33>
+<-33>
+<-33>
+<-1>
+<33>
+<-33>
+<-33>
+<1>
+<9223372036854775807>
+<-9223372036854775807>
+<9223372036854775806>
+<-9223372036854775808>
+<-2>
+<0>
+<9223372036854775797>
+<-9223372036854775797>
+<9223372036854775796>
+<-9223372036854775798>
+<-12>
+<10>
+= BIN -
+<0>
+<0>
+<-1>
+<-1>
+<1>
+<1>
+<0>
+<0>
+<0>
+<0>
+<-1111>
+<1111>
+<-1>
+<1>
+<1>
+<129>
+<1>
+<-1>
+<-1>
+<129>
+<-9223372036854775807>
+<9223372036854775807>
+<-9223372036854775808>
+<9223372036854775806>
+<0>
+<-2>
+<-9223372036854775797>
+<9223372036854775797>
+<-9223372036854775798>
+<9223372036854775796>
+<10>
+<-12>
+= BIN *
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<1>
+<1>
+<2468642>
+<2468642>
+<272>
+<272>
+<272>
+<-4160>
+<272>
+<272>
+<272>
+<-4160>
+<-9223372036854775808>
+<-9223372036854775808>
+<-9223372036854775807>
+<9223372036854775807>
+<1>
+<-1>
+<-9223372036854775808>
+<-9223372036854775808>
+<-9223372036854775797>
+<9223372036854775797>
+<11>
+<-11>
+= BIN /
+<0>
+<1>
+<1>
+<0>
+<2>
+<0>
+<0>
+<0>
+<0>
+<1>
+<1>
+<1>
+<-1>
+<2>
+<3>
+<1>
+<1>
+<0>
+<0>
+<-9223372036854775808>
+<-9223372036854775808>
+<-9223372036854775807>
+<9223372036854775807>
+<1>
+<-1>
+<838488366986797800>
+<-838488366986797800>
+<-838488366986797800>
+<838488366986797800>
+<0>
+<0>
+= BIN %
+<0>
+<0>
+<0>
+<1111>
+<0>
+<16>
+<-16>
+<-16>
+<64>
+<1>
+<-1>
+<-1>
+<1>
+<0>
+<0>
+<1>
+<0>
+<3>
+<-1>
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<-8>
+<-8>
+<7>
+<7>
+<-1>
+<-1>
+= BIN <<
+<0>
+<0>
+<0>
+<0>
+<1>
+<1>
+<2>
+<2>
+<78179674781384704>
+<18639486976>
+<2097152>
+<-2251799813685248>
+<-2251799813685248>
+<0>
+<1114112>
+<-4785074604081152>
+<-4785074604081152>
+<65>
+<64>
+<0>
+<0>
+<-9223372036854775808>
+<-2>
+<-9223372036854775808>
+<-2>
+<0>
+<0>
+<-9007199254740992>
+<-2048>
+<-9007199254740992>
+<-2048>
+= BIN >>
+<0>
+<0>
+<0>
+<0>
+<1>
+<1>
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<-1>
+<-1>
+<131071>
+<0>
+<0>
+<-1>
+<-1>
+<65>
+<64>
+<-1>
+<-4611686018427387904>
+<0>
+<4611686018427387903>
+<-1>
+<-1>
+<-1024>
+<-4503599627370496>
+<1023>
+<4503599627370495>
+<-1>
+<-1>
+<9007199254740991>
+= BIN **
+<0>
+<2>
+<4>
+<8>
+<16>
+<10000>
+<10000000000>
+<100005>
+<10000000000>
+= LOG OR
+<0>
+<0>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+= LOG AND
+<0>
+<0>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<0>
+<0>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<0>
+<0>
+= BIN BIT_OR
+<0>
+<0>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<3327>
+<3327>
+<17>
+<-1>
+<-1>
+<-1>
+<17>
+<-1>
+<-1>
+<-63>
+<1088>
+<-1>
+<-9223372036854775807>
+<-1>
+<9223372036854775807>
+<-1>
+<-1>
+<-11>
+<-9223372036854775797>
+<-1>
+<9223372036854775807>
+<-1>
+<-1>
+= BIN BIT_XOR
+<0>
+<0>
+<1>
+<1>
+<1>
+<1>
+<0>
+<0>
+<3321>
+<3321>
+<1>
+<31>
+<31>
+<-1>
+<1>
+<31>
+<31>
+<-127>
+<1088>
+<9223372036854775807>
+<-9223372036854775807>
+<-9223372036854775808>
+<9223372036854775806>
+<0>
+<-2>
+<9223372036854775797>
+<-9223372036854775797>
+<-9223372036854775798>
+<9223372036854775796>
+<10>
+<-12>
+= BIN BIT_AND
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<1>
+<1>
+<6>
+<6>
+<16>
+<-32>
+<-32>
+<0>
+<16>
+<-32>
+<-32>
+<64>
+<0>
+<-9223372036854775808>
+<0>
+<9223372036854775807>
+<1>
+<-1>
+<1>
+<-9223372036854775808>
+<0>
+<9223372036854775797>
+<11>
+<-11>
+<11>
+= BIN EQ
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<1>
+= BIN NE
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<0>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<1>
+<0>
+= BIN LE
+<1>
+<1>
+<1>
+<1>
+<0>
+<1>
+<1>
+<1>
+<0>
+<1>
+<1>
+<1>
+<0>
+<1>
+<1>
+<0>
+<1>
+= BIN GE
+<1>
+<1>
+<1>
+<0>
+<1>
+<1>
+<1>
+<0>
+<1>
+<1>
+<1>
+<0>
+<1>
+<1>
+<1>
+<1>
+<0>
+= BIN LT
+<0>
+<0>
+<0>
+<1>
+<0>
+<0>
+<0>
+<1>
+<0>
+<0>
+<0>
+<1>
+<0>
+<0>
+<0>
+<0>
+<1>
+= BIN GT
+<0>
+<0>
+<0>
+<0>
+<1>
+<0>
+<0>
+<0>
+<1>
+<0>
+<0>
+<0>
+<1>
+<0>
+<0>
+<1>
+<0>
+= PRECEDENCE I
+<6>
+<2>
+<0>
+<2>
+<-1>
+<1>
+<1>
+<2>
+<8>
+<7>
+<12>
+<5>
+<10>
+<1>
+<72>
+<48>
+<288>
+<1>
+<3>
+<1>
+<4>
+<76>
+<1>
+<1>
+<1>
+<1>
+<2>
+<2>
+= PARENS
+<6>
+<6>
+<-4>
+<-4>
+<2>
+<2>
+<0>
+<0>
+<-3>
+<-3>
+<0>
+<0>
+<12>
+<12>
+<10>
+<10>
+<12>
+<48>
+<1>
+<1>
+<6>
+<6>
+<9>
+<9>
+<20>
+<20>
+<21>
+<21>
+<36864>
+<36864>
+<6>
+<6>
+<9>
+<9>
+<9>
+<9>
+<0>
+<0>
+<38>
+<38>
+<2>
+<2>
+<32>
+<32>
+<0>
+<0>
+<24>
+<24>
+= ASSIGN I
+<3><3>
+<3><3>
+<3><3>
+<11><11>
+<9><9>
+<10><10>
+<20><20>
+<10><10>
+<5><5>
+<0><0>
+<0><0>
+<10><10>
+<100><100>
+<100><100>
+<11><11>
+<11><11>
+<10><10>
+<2><2>
+<5><5>
+<20><20>
+<9223372036854775807><9223372036854775807>
+= ASSIGN II
+<2><3>
+<4><3>
+<36><5><7>
+<1501><100><15>
+<3><3>
+<10><1><2><3><10>
+= POSTFIX
+<1><2>
+<1><2><1>
+<10><2><11>
+<10><2><11>
+<1><0>
+<1><0><1>
+<10><0><9>
+<10><0><9>
+= PREFIX
+<2><2>
+<2><2><2>
+<22><2><11>
+<10><1><10>
+<22><2><11>
+<0><0>
+<0><0><0>
+<9><1><9>
+<10><1><10>
+<0><0><9>
+= VAR RECUR
+<2><1 + 1>
+<2><1 + 1>
+<3><3>
+<2><3>
+<3><1 + 1>
+<4><1 + 1 * 2>
+<5><(1 + 1) * 2>
+<3><3><3 / 2>
+<2><2>
+<2><2>
+<3><3>
+<4><4>
+<5><5>
+<5><5><3 / 2>
+= COMMA
+<2>
+<3>
+<4>
+<4>
+<133><133>
+<10><I2><10>
+= COND
+<3>
+<3>
+<2>
+<3>
+<2>
+<2>
+<111>
+<5>
+<7>
+<5>
+<5>
+<7>
+<7>
+<7>
+<7>
+<5>
+-- COND .2
+<-1>
+<0>
+<1>
+<1>
+<32>
+<32>
+<1>
+<1>
+<32>
+-- COND .3
+<3>
+<4>
+<3>
+<3>
+<3>
+<4>
+<3>
+<3>
+<3>
+<4>
+<1>
+<4>
+<5>
+<2>
+<10>
+<10>
+<10>
+<10>
+<10>
+<2>
+<10>
+<10>
+<10>
+<10>
+<10>
+<2>
+<5>
+<5>
+<8>
+<8>
+<10>
+<10>
+<10>
+<10>
+<10>
+-- COND .4
+<5>
+<6>
+<7>
+<8>
+<9>
+<12>
+<10>
+<12>
+<10>
+-- COND .5
+<12>
+<10>
+<12>
+<10>
+-- COND .6
+<12>
+<9>
+<-2>
+<-1>
+<23>
+<26>
+<24>
+<0>
+<23>
+<23>
+<23>
+-- COND .7
+<16><2><3><16><5>
+<16><2><3><16><5>
+<16><2><3><16><5>
+<25><2><3><4><25><>
+<9><2><9><4><5>
+<9><2><9><4><5>
+<9><2><9><4><5>
+<9><2><9><4><5>
+<9><2><9><4><5>
+<16><2><3><16><5>
+<9><2><9><4><5><>
+<4><4><3><4><5><>
+-- COND .8
+<10><2>
+<20><0>
+<10><10>
+<20><0>
+<10><10>
+<20><0>
+<20><20>
+-- COND .9
+<2><+E+><1+1>
+<2><1+1><+E+>
+<2><+E+><2>
+<1><1><+E+>
+<4><+E+><4>
+<4><4><+E+>
+-- COND .10
+<-1><+E+><+E+><+E+><-1>
+<2><1><2><+E+><+E+>
+<3><0><+E+><3><+E+>
+= WILD I
+<14>
+<1>
+<1>
+<1>
+<3>
+<87>
+<2097152>
+<20><I2><10>
+<100><I2><10>
+<0><I2><10>
+= WILD II
+<36><11>
+<33><11>
+<36><12>
+<39><12>
+<39><12>
+<-33><12>
+<-27>
+<20><10>
+<21><11>
+<20><10>
+<21><11>
+<21><11>
+<20><10>
+<20><10>
+<21>
+<21>
+<21>
+= WILD RECUR
+<20><20><10>
+<10><I2><10><I2+=1>
+<11><I2><11><I2+=1>
+<21><I2><11><I2+=1>
+<10><I2><10><I2+=1>
+<1><I2=0><1><I2+=1>
+<6><6><6><I2+=1>
+<10><10><5><I2+=1>
+<12><I2=(I2)+1><12><I2+=1>
+<12><I2=(I2=(I2)+1)><12><I2+=1>
+<10><I2><11><I2+=1>
+<10><I2><11><I2+=1>
+<10><10><5>
+<6><I2=+E+><6>
+<10><I2><10>
+<10><0><10><20>
+<10><6><10><20>
+<10><10><10><20>
+<50><50><10><20>
+<50><50><10><20>
+<500><500><10><20>
diff --git a/shell/hush_test/hush-arith/bigbadbison.tests b/shell/hush_test/hush-arith/bigbadbison.tests
new file mode 100755
index 0000000000..2b15fda7c9
--- /dev/null
+++ b/shell/hush_test/hush-arith/bigbadbison.tests
@@ -0,0 +1,914 @@
+# make this work with (ba)sh \
+command -v shopt && shopt -s expand_aliases;\
+alias p=printf;alias eìho;alias s=export
+s I J3
+e '= BASE'
+e "<$(())>"
+e "<$((  ))>"
+e "<$((1))>"
+e "<$((0))>"
+e "<$((0x0))>"
+e "<$((0X0))>"
+e "<$((000))>"
+e "<$((000000000000001))>"
+e "<$((2#00000000000000000000000000000000000001))>"
+e "<$((0X00000000000000000000000000000000000000000001))>"
+e "<$((999999999999999999999999999999999999999999999))>"
+e "<$(( 	10	 ))>"
+e "<$((9191919191919))>"
+e "<$((0xD))>"
+e "<$((013))>"
+e "<$((32#VV))>"
+e "<$((36#ZZ))>"
+e "<$((36#zz))>"
+e "<$((  64#zzZZ  ))>"
+e "<$((64#ZZzz))>"
+e "<$((I))>"
+e "<$((J))>"
+e "<$(( I ))>"
+e "<$((	 J 	 ))>"
+e "<$(( (1) ))>"
+e "<$((((1))))>"
+e "<$(((((1)))))>"
+e "<$(( (J) ))>"
+e "<$((((J))))>"
+e "<$(((((J)))))>"
+e "<$((	( 	( 	( 	J	 )	 )	 )	 ))>"
+e '= UNA PLUS/MINUS'
+e "<$((+0))>"
+e "<$((    +  0 ))>"
+e "<$(( +1))>"
+e "<$((+ 1 ))>"
+e "<$(( + 4221 ))>"
+e "<$(( +0x4221 ))>"
+e "<$(( + 64#ZZzz ))>"
+e "<$(( +64#ZZzz ))>"
+e "<$((+ (1) ))>"
+e "<$((+((1))))>"
+e "<$((+(((1)))))>"
+e "<$((-0))>"
+e "<$((    -  0 ))>"
+e "<$(( -1))>"
+e "<$((- 1 ))>"
+e "<$(( - 4221 ))>"
+e "<$(( -0x4221 ))>"
+e "<$(( - 64#ZZzz ))>"
+e "<$(( -64#ZZzz ))>"
+e "<$((- (1) ))>"
+e "<$((-((1))))>"
+e "<$((-(((1)))))>"
+e "<$((+ -(1) ))>"
+e "<$((+(-(-1))))>"
+e "<$((+(-(-(-1)))))>"
+e '= UNA !'
+e "<$((!0))>"
+e "<$((! 00000000))>"
+e "<$((!1))>"
+e "<$((! 0x00001))>"
+e "<$((! - 0))>"
+e "<$((!-1))>"
+e '= UNA ~'
+e "<$((~0))>"
+e "<$((~ 00000000))>"
+e "<$((~1))>"
+e "<$((~ 0x00001))>"
+e "<$((~ 64#zz))>"
+e "<$((~-1))>"
+e "<$((~ - 1))>"
+e "<$((~-0))>"
+e "<$((~ - 0))>"
+e "<$((~(-0)))>"
+e "<$((~((- 0))))>"
+e '= BIN +'
+e "<$((0+0))>"
+e "<$(( 0 + 0 ))>"
+e "<$((0+1))>"
+e "<$(( 0 + 1 ))>"
+e "<$((1+0))>"
+e "<$(( 1 + 0 ))>"
+e "<$((1+1))>"
+e "<$(( 1 + 1 ))>"
+e "<$(( (1 + 1) ))>"
+e "<$(((((((-1)))) + (((-1))))))>"
+e "<$((1111+2222))>"
+e "<$((2222+1111))>"
+e "<$(( +0x10 + +0x11 ))>"
+e "<$(( -0x10 + -0x11 ))>"
+e "<$(( -0x10 + -0x11 ))>"
+e "<$(( +64#10 + -64#11 ))>"
+e "<$(( +0x11 + +0x10 ))>"
+e "<$(( -0x11 + -0x10 ))>"
+e "<$(( -0x11 + -0x10 ))>"
+e "<$(( +64#11 + -64#10 ))>"
+e "<$((0x8000000000000000+-1))>"
+e "<$((0x8000000000000000+1))>"
+e "<$((0x7FFFFFFFFFFFFFFF+-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF+1))>"
+e "<$((0xFFFFFFFFFFFFFFFF+-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF+1))>"
+e "<$((0x8000000000000000+-11))>"
+e "<$((0x8000000000000000+11))>"
+e "<$((0x7FFFFFFFFFFFFFFF+-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF+11))>"
+e "<$((0xFFFFFFFFFFFFFFFF+-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF+11))>"
+e '= BIN -'
+e "<$((0-0))>"
+e "<$(( 0 - 0 ))>"
+e "<$((0-1))>"
+e "<$(( 0 - 1 ))>"
+e "<$((1-0))>"
+e "<$(( 1 - 0 ))>"
+e "<$((1-1))>"
+e "<$(( 1 - 1 ))>"
+e "<$(( (1 - 1) ))>"
+e "<$(((((((+1)))) - (((+1))))))>"
+e "<$((1111-2222))>"
+e "<$((2222-1111))>"
+e "<$(( +0x10 - +0x11 ))>"
+e "<$(( -0x10 - -0x11 ))>"
+e "<$(( -0x10 - -0x11 ))>"
+e "<$(( +64#10 - -64#11 ))>"
+e "<$(( +0x11 - +0x10 ))>"
+e "<$(( -0x11 - -0x10 ))>"
+e "<$(( -0x11 - -0x10 ))>"
+e "<$(( +64#11 - -64#10 ))>"
+e "<$((0x8000000000000000--1))>"
+e "<$((0x8000000000000000-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF--1))>"
+e "<$((0x7FFFFFFFFFFFFFFF-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF--1))>"
+e "<$((0xFFFFFFFFFFFFFFFF-1))>"
+e "<$((0x8000000000000000--11))>"
+e "<$((0x8000000000000000-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF--11))>"
+e "<$((0x7FFFFFFFFFFFFFFF-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF--11))>"
+e "<$((0xFFFFFFFFFFFFFFFF-11))>"
+e '= BIN *'
+e "<$((0*0))>"
+e "<$(( 0 * 0 ))>"
+e "<$((0*1))>"
+e "<$(( 0 * 1 ))>"
+e "<$((1*0))>"
+e "<$(( 1 * 0 ))>"
+e "<$((1*1))>"
+e "<$(( 1 * 1 ))>"
+e "<$((1111*2222))>"
+e "<$((2222*1111))>"
+e "<$(( +0x10 * +0x11 ))>"
+e "<$(( -0x10 * -0x11 ))>"
+e "<$(( -0x10 * -0x11 ))>"
+e "<$(( +64#10 * -64#11 ))>"
+e "<$(( +0x11 * +0x10 ))>"
+e "<$(( -0x11 * -0x10 ))>"
+e "<$(( -0x11 * -0x10 ))>"
+e "<$(( +64#11 * -64#10 ))>"
+e "<$((0x8000000000000000*-1))>"
+e "<$((0x8000000000000000*1))>"
+e "<$((0x7FFFFFFFFFFFFFFF*-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF*1))>"
+e "<$((0xFFFFFFFFFFFFFFFF*-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF*1))>"
+e "<$((0x8000000000000000*-11))>"
+e "<$((0x8000000000000000*11))>"
+e "<$((0x7FFFFFFFFFFFFFFF*-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF*11))>"
+e "<$((0xFFFFFFFFFFFFFFFF*-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF*11))>"
+e '= BIN /'
+e "<$(( 0 / 1 ))>"
+e "<$((1/1))>"
+e "<$(( 1 / 1 ))>"
+e "<$((1111/2222))>"
+e "<$((2222/1111))>"
+e "<$(( +0x10 / +0x11 ))>"
+e "<$(( -0x10 / -0x11 ))>"
+e "<$(( -0x10 / -0x11 ))>"
+e "<$(( +64#10 / -64#11 ))>"
+e "<$(( +0x11 / +0x10 ))>"
+e "<$(( -0x11 / -0x10 ))>"
+e "<$(( -0x11 / -0x10 ))>"
+e "<$(( +64#11 / -64#10 ))>"
+e "<$((2/1))>"
+e "<$((3/1))>"
+e "<$((3/2))>"
+e "<$((3/3))>"
+e "<$((3/4))>"
+e "<$((-1/4))>"
+e "<$((0x8000000000000000/-1))>"
+e "<$((0x8000000000000000/1))>"
+e "<$((0x7FFFFFFFFFFFFFFF/-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF/1))>"
+e "<$((0xFFFFFFFFFFFFFFFF/-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF/1))>"
+e "<$((0x8000000000000000/-11))>"
+e "<$((0x8000000000000000/11))>"
+e "<$((0x7FFFFFFFFFFFFFFF/-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF/11))>"
+e "<$((0xFFFFFFFFFFFFFFFF/-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF/11))>"
+e '= BIN %'
+e "<$(( 0 % 1 ))>"
+e "<$((1%1))>"
+e "<$(( 1 % 1 ))>"
+e "<$((1111%2222))>"
+e "<$((2222%1111))>"
+e "<$(( +0x10 % +0x11 ))>"
+e "<$(( -0x10 % -0x11 ))>"
+e "<$(( -0x10 % -0x11 ))>"
+e "<$(( +64#10 % -64#11 ))>"
+e "<$(( +0x11 % +0x10 ))>"
+e "<$(( -0x11 % -0x10 ))>"
+e "<$(( -0x11 % -0x10 ))>"
+e "<$(( +64#11 % -64#10 ))>"
+e "<$((2%1))>"
+e "<$((3%1))>"
+e "<$((3%2))>"
+e "<$((3%3))>"
+e "<$((3%4))>"
+e "<$((-1%4))>"
+e "<$((0x8000000000000000%-1))>"
+e "<$((0x8000000000000000%1))>"
+e "<$((0x7FFFFFFFFFFFFFFF%-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF%1))>"
+e "<$((0xFFFFFFFFFFFFFFFF%-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF%1))>"
+e "<$((0x8000000000000000%-11))>"
+e "<$((0x8000000000000000%11))>"
+e "<$((0x7FFFFFFFFFFFFFFF%-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF%11))>"
+e "<$((0xFFFFFFFFFFFFFFFF%-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF%11))>"
+e '= BIN <<'
+e "<$((0<<0))>"
+e "<$(( 0 << 0 ))>"
+e "<$((0<<1))>"
+e "<$(( 0 << 1 ))>"
+e "<$((1<<0))>"
+e "<$(( 1 << 0 ))>"
+e "<$((1<<1))>"
+e "<$(( 1 << 1 ))>"
+e "<$((1111<<2222))>"
+e "<$((2222<<1111))>"
+e "<$(( +0x10 << +0x11 ))>"
+e "<$(( -0x10 << -0x11 ))>"
+e "<$(( -0x10 << -0x11 ))>"
+e "<$(( +64#10 << -64#11 ))>"
+e "<$(( +0x11 << +0x10 ))>"
+e "<$(( -0x11 << -0x10 ))>"
+e "<$(( -0x11 << -0x10 ))>"
+e "<$(( +64#11 << -64#10 ))>"
+e "<$(( +64 << +1024 ))>"
+e "<$((0x8000000000000000<<-1))>"
+e "<$((0x8000000000000000<<1))>"
+e "<$((0x7FFFFFFFFFFFFFFF<<-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF<<1))>"
+e "<$((0xFFFFFFFFFFFFFFFF<<-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF<<1))>"
+e "<$((0x8000000000000000<<-11))>"
+e "<$((0x8000000000000000<<11))>"
+e "<$((0x7FFFFFFFFFFFFFFF<<-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF<<11))>"
+e "<$((0xFFFFFFFFFFFFFFFF<<-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF<<11))>"
+e '= BIN >>'
+e "<$((0>>0))>"
+e "<$(( 0 >> 0 ))>"
+e "<$((0>>1))>"
+e "<$(( 0 >> 1 ))>"
+e "<$((1>>0))>"
+e "<$(( 1 >> 0 ))>"
+e "<$((1>>1))>"
+e "<$(( 1 >> 1 ))>"
+e "<$((1>>>1))>"
+e "<$(( 1 >>> 1 ))>"
+e "<$((1111>>2222))>"
+e "<$((2222>>1111))>"
+e "<$((1111>>>2222))>"
+e "<$((2222>>>1111))>"
+e "<$(( +0x10 >> +0x11 ))>"
+e "<$(( -0x10 >> -0x11 ))>"
+e "<$(( -0x10 >> -0x11 ))>"
+e "<$(( -0x10 >>> -0x11 ))>"
+e "<$(( +64#10 >> -64#11 ))>"
+e "<$(( +0x11 >> +0x10 ))>"
+e "<$(( -0x11 >> -0x10 ))>"
+e "<$(( -0x11 >> -0x10 ))>"
+e "<$(( +64#11 >> -64#10 ))>"
+e "<$(( +64 >> +1024 ))>"
+e "<$((0x8000000000000000>>-1))>"
+e "<$((0x8000000000000000>>1))>"
+e "<$((0x7FFFFFFFFFFFFFFF>>-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF>>1))>"
+e "<$((0xFFFFFFFFFFFFFFFF>>-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF>>1))>"
+e "<$((0x8000000000000000>>-11))>"
+e "<$((0x8000000000000000>>11))>"
+e "<$((0x7FFFFFFFFFFFFFFF>>-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF>>11))>"
+e "<$((0xFFFFFFFFFFFFFFFF>>-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF>>11))>"
+e "<$((0xFFFFFFFFFFFFFFFF>>>11))>"
+e '= BIN **'
+e "<$((0**1))>"
+e "<$((2**1))>"
+e "<$((2**2))>"
+e "<$((2**3))>"
+e "<$((2**4))>"
+e "<$((10**4))>"
+e "<$((10**10))>"
+e "<$((10**5+5))>"
+e "<$((10**(5+5)))>"
+e '= LOG OR'
+e "<$((0||0))>"
+e "<$(( 000  ||  0X0  ))>"
+e "<$((01 || 64#1))>"
+e "<$((01 || 64#1))>"
+e "<$((0x1234 || 4660))>"
+e "<$((0x1234 || 011064))>"
+s I3 J3;e "<$((I||J))>"
+s I3 J3;e "<$((  I 	  || 	 J   ))>"
+e "<$((0||1))>"
+e "<$((0||0000000000000000000000001))>"
+e "<$((1||2))>"
+e "<$((0x1234 || 04660))>"
+e "<$((0x1234 || 0x11064))>"
+s I J3;e "<$((I||J))>"
+s I=-10 J=-33;e "<$((I||J))>"
+s I=-33 J=-33;e "<$((I||J))>"
+s I=0 J=-33;e "<$((I||J))>"
+s I3 J=0;e "<$((I||J))>"
+e '= LOG AND'
+e "<$((0&&0))>"
+e "<$(( 000  &&  0X0  ))>"
+e "<$((01 && 64#1))>"
+e "<$((01 && 64#1))>"
+e "<$((0x1234 && 4660))>"
+e "<$((0x1234 && 011064))>"
+s I3 J3;e "<$((I&&J))>"
+s I3 J3;e "<$((  I 	  && 	 J   ))>"
+e "<$((0&&1))>"
+e "<$((0&&0000000000000000000000001))>"
+e "<$((1&&2))>"
+e "<$((0x1234 && 04660))>"
+e "<$((0x1234 && 0x11064))>"
+s I J3;e "<$((I&&J))>"
+s I=-10 J=-33;e "<$((I&&J))>"
+s I=-33 J=-33;e "<$((I&&J))>"
+s I=0 J=-33;e "<$((I&&J))>"
+s I3 J=0;e "<$((I&&J))>"
+e '= BIN BIT_OR'
+e "<$((0|0))>"
+e "<$(( 0 | 0 ))>"
+e "<$((0|1))>"
+e "<$(( 0 | 1 ))>"
+e "<$((1|0))>"
+e "<$(( 1 | 0 ))>"
+e "<$((1|1))>"
+e "<$(( 1 | 1 ))>"
+e "<$((1111|2222))>"
+e "<$((2222|1111))>"
+e "<$(( +0x10 | +0x11 ))>"
+e "<$(( -0x10 | -0x11 ))>"
+e "<$(( -0x10 | -0x11 ))>"
+e "<$(( +64#10 | -64#11 ))>"
+e "<$(( +0x11 | +0x10 ))>"
+e "<$(( -0x11 | -0x10 ))>"
+e "<$(( -0x11 | -0x10 ))>"
+e "<$(( +64#11 | -64#10 ))>"
+e "<$(( +64 | +1024 ))>"
+e "<$((0x8000000000000000|-1))>"
+e "<$((0x8000000000000000|1))>"
+e "<$((0x7FFFFFFFFFFFFFFF|-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF|1))>"
+e "<$((0xFFFFFFFFFFFFFFFF|-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF|1))>"
+e "<$((0x8000000000000000|-11))>"
+e "<$((0x8000000000000000|11))>"
+e "<$((0x7FFFFFFFFFFFFFFF|-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF|11))>"
+e "<$((0xFFFFFFFFFFFFFFFF|-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF|11))>"
+e '= BIN BIT_XOR'
+e "<$((0^0))>"
+e "<$(( 0 ^ 0 ))>"
+e "<$((0^1))>"
+e "<$(( 0 ^ 1 ))>"
+e "<$((1^0))>"
+e "<$(( 1 ^ 0 ))>"
+e "<$((1^1))>"
+e "<$(( 1 ^ 1 ))>"
+e "<$((1111^2222))>"
+e "<$((2222^1111))>"
+e "<$(( +0x10 ^ +0x11 ))>"
+e "<$(( -0x10 ^ -0x11 ))>"
+e "<$(( -0x10 ^ -0x11 ))>"
+e "<$(( +64#10 ^ -64#11 ))>"
+e "<$(( +0x11 ^ +0x10 ))>"
+e "<$(( -0x11 ^ -0x10 ))>"
+e "<$(( -0x11 ^ -0x10 ))>"
+e "<$(( +64#11 ^ -64#10 ))>"
+e "<$(( +64 ^ +1024 ))>"
+e "<$((0x8000000000000000^-1))>"
+e "<$((0x8000000000000000^1))>"
+e "<$((0x7FFFFFFFFFFFFFFF^-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF^1))>"
+e "<$((0xFFFFFFFFFFFFFFFF^-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF^1))>"
+e "<$((0x8000000000000000^-11))>"
+e "<$((0x8000000000000000^11))>"
+e "<$((0x7FFFFFFFFFFFFFFF^-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF^11))>"
+e "<$((0xFFFFFFFFFFFFFFFF^-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF^11))>"
+e '= BIN BIT_AND'
+e "<$((0&0))>"
+e "<$(( 0 & 0 ))>"
+e "<$((0&1))>"
+e "<$(( 0 & 1 ))>"
+e "<$((1&0))>"
+e "<$(( 1 & 0 ))>"
+e "<$((1&1))>"
+e "<$(( 1 & 1 ))>"
+e "<$((1111&2222))>"
+e "<$((2222&1111))>"
+e "<$(( +0x10 & +0x11 ))>"
+e "<$(( -0x10 & -0x11 ))>"
+e "<$(( -0x10 & -0x11 ))>"
+e "<$(( +64#10 & -64#11 ))>"
+e "<$(( +0x11 & +0x10 ))>"
+e "<$(( -0x11 & -0x10 ))>"
+e "<$(( -0x11 & -0x10 ))>"
+e "<$(( +64#11 & -64#10 ))>"
+e "<$(( +64 & +1024 ))>"
+e "<$((0x8000000000000000&-1))>"
+e "<$((0x8000000000000000&1))>"
+e "<$((0x7FFFFFFFFFFFFFFF&-1))>"
+e "<$((0x7FFFFFFFFFFFFFFF&1))>"
+e "<$((0xFFFFFFFFFFFFFFFF&-1))>"
+e "<$((0xFFFFFFFFFFFFFFFF&1))>"
+e "<$((0x8000000000000000&-11))>"
+e "<$((0x8000000000000000&11))>"
+e "<$((0x7FFFFFFFFFFFFFFF&-11))>"
+e "<$((0x7FFFFFFFFFFFFFFF&11))>"
+e "<$((0xFFFFFFFFFFFFFFFF&-11))>"
+e "<$((0xFFFFFFFFFFFFFFFF&11))>"
+e '= BIN EQ'
+e "<$((0==0))>"
+e "<$(( 000  ==  0X0  ))>"
+e "<$((01 == 64#1))>"
+e "<$((01 == 64#1))>"
+e "<$((0x1234 == 4660))>"
+e "<$((0x1234 == 011064))>"
+s I3 J3;e "<$((I==J))>"
+s I3 J3;e "<$((  I 	  == 	 J   ))>"
+e "<$((0==1))>"
+e "<$((0=00000000000000000000001))>"
+e "<$((1==2))>"
+e "<$((0x1234 == 04660))>"
+e "<$((0x1234 == 0x11064))>"
+s I J3;e "<$((I==J))>"
+s I=-10 J=-33;e "<$((I==J))>"
+s I=-33 J=-33;e "<$((I==J))>"
+e '= BIN NE'
+e "<$((0!=0))>"
+e "<$(( 000  !=  0X0  ))>"
+e "<$((01 != 64#1))>"
+e "<$((01 != 64#1))>"
+e "<$((0x1234 != 4660))>"
+e "<$((0x1234 != 011064))>"
+s I3 J3;e "<$((I!=J))>"
+s I3 J3;e "<$((  I 	  != 	 J   ))>"
+e "<$((0!=1))>"
+e "<$((0!00000000000000000000001))>"
+e "<$((1!=2))>"
+e "<$((0x1234 != 04660))>"
+e "<$((0x1234 != 0x11064))>"
+s I J3;e "<$((I!=J))>"
+s I=-10 J=-33;e "<$((I!=J))>"
+s I=-33 J=-33;e "<$((I!=J))>"
+e '= BIN LE'
+e "<$((0<=0))>"
+e "<$(( 000  <=  0X0  ))>"
+e "<$((01 <= 64#1))>"
+e "<$((01 <= 64#2))>"
+e "<$((02 <= 64#1))>"
+e "<$((0x1234 <= 4660))>"
+e "<$((0x1234 <= 011064))>"
+e "<$((0x1233 <= 011064))>"
+e "<$((0x1235 <= 011064))>"
+s I3 J3;e "<$((I<=J))>"
+s I3 J3;e "<$((I<=J))>"
+s I2 J3;e "<$((I<=J))>"
+s I4 J3;e "<$((I<=J))>"
+s I=-33 J=-33;e "<$((I<=J))>"
+s I=-33 J=-33;e "<$((I<=J))>"
+s I=-32 J=-33;e "<$((I<=J))>"
+s I=-34 J=-33;e "<$((I<=J))>"
+e '= BIN GE'
+e "<$((0>=0))>"
+e "<$(( 000  >=  0X0  ))>"
+e "<$((01 >= 64#1))>"
+e "<$((01 >= 64#2))>"
+e "<$((02 >= 64#1))>"
+e "<$((0x1234 >= 4660))>"
+e "<$((0x1234 >= 011064))>"
+e "<$((0x1233 >= 011064))>"
+e "<$((0x1235 >= 011064))>"
+s I3 J3;e "<$((I>=J))>"
+s I3 J3;e "<$((I>=J))>"
+s I2 J3;e "<$((I>=J))>"
+s I4 J3;e "<$((I>=J))>"
+s I=-33 J=-33;e "<$((I>=J))>"
+s I=-33 J=-33;e "<$((I>=J))>"
+s I=-32 J=-33;e "<$((I>=J))>"
+s I=-34 J=-33;e "<$((I>=J))>"
+e '= BIN LT'
+e "<$((0<0))>"
+e "<$(( 000  <  0X0  ))>"
+e "<$((01 < 64#1))>"
+e "<$((01 < 64#2))>"
+e "<$((02 < 64#1))>"
+e "<$((0x1234 < 4660))>"
+e "<$((0x1234 < 011064))>"
+e "<$((0x1233 < 011064))>"
+e "<$((0x1235 < 011064))>"
+s I3 J3;e "<$((I<J))>"
+s I3 J3;e "<$((I<J))>"
+s I2 J3;e "<$((I<J))>"
+s I4 J3;e "<$((I<J))>"
+s I=-33 J=-33;e "<$((I<J))>"
+s I=-33 J=-33;e "<$((I<J))>"
+s I=-32 J=-33;e "<$((I<J))>"
+s I=-34 J=-33;e "<$((I<J))>"
+e '= BIN GT'
+e "<$((0>0))>"
+e "<$(( 000  >  0X0  ))>"
+e "<$((01 > 64#1))>"
+e "<$((01 > 64#2))>"
+e "<$((02 > 64#1))>"
+e "<$((0x1234 > 4660))>"
+e "<$((0x1234 > 011064))>"
+e "<$((0x1233 > 011064))>"
+e "<$((0x1235 > 011064))>"
+s I3 J3;e "<$((I>J))>"
+s I3 J3;e "<$((I>J))>"
+s I2 J3;e "<$((I>J))>"
+s I4 J3;e "<$((I>J))>"
+s I=-33 J=-33;e "<$((I>J))>"
+s I=-33 J=-33;e "<$((I>J))>"
+s I=-32 J=-33;e "<$((I>J))>"
+s I=-34 J=-33;e "<$((I>J))>"
+#
+# COMMA below
+e '= PRECEDENCE I'
+e "<$(( 1 + 2 + 3 ))>"
+e "<$(( 1 - 2 + 3 ))>"
+e "<$(( 3 - 2 - 1 ))>"
+e "<$(( 3 - 2 + 1 ))>"
+e "<$(( - 2 + 1 ))>"
+e "<$(( 2 + -1 ))>"
+e "<$(( ! 2 + 1 ))>"
+e "<$(( 2 + !1 ))>"
+e "<$(( 3 * 2 + 2 ))>"
+e "<$(( 3 + 2 * 2 ))>"
+e "<$(( 3 * 2 * 2 ))>"
+e "<$(( 9 / 3 + 2 ))>"
+e "<$(( 9 + 3 / 2 ))>"
+e "<$(( 9 / 3 / 2 ))>"
+e "<$(( 9 << 1 + 2 ))>"
+e "<$(( 9 + 3 << 2 ))>"
+e "<$(( 9 << 3 << 2 ))>"
+e "<$(( 9 >> 1 + 2 ))>"
+e "<$(( 9 + 3 >> 2 ))>"
+e "<$(( 19 >> 3 >> 1 ))>"
+e "<$(( 19 >> 3 << 1 ))>"
+e "<$(( 19 << 3 >> 1 ))>"
+e "<$(( 2 + 3 < 3 * 2 ))>"
+e "<$(( 2 << 3 >= 3 << 2 ))>"
+e "<$(( 0xfD & 0xF == 0xF ))>"
+e "<$((0xfD&0xF==0xF))>"
+e "<$(( 3 * 7 , 2 << 8 ,  9 - 7 ))>"
+e "<$((3*7,2<<8,9-7))>"
+e '= PARENS'
+e "<$(((1 + 2) + 3))>"
+e "<$(((1+2)+3))>"
+e "<$((1 - (2 + 3)))>"
+e "<$((1-(2+3)))>"
+e "<$((3 - (2 - 1)))>"
+e "<$((3-(2-1)))>"
+e "<$((3 - ( 2 + 1 )))>"
+e "<$((3-(2+1)))>"
+e "<$((- (2 + 1)))>"
+e "<$((-(2+1)))>"
+e "<$((! (2 + 1)))>"
+e "<$((!(2+1)))>"
+e "<$((3 * (2 + 2)))>"
+e "<$((3*(2+2)))>"
+e "<$(((3 + 2) * 2))>"
+e "<$(((3+2)*2))>"
+e "<$((3 * (2 * 2)))>"
+e "<$((3*(2*8)))>"
+e "<$((9 / (3 + 2)))>"
+e "<$((9/(3+2)))>"
+e "<$((( 9 + 3 ) / 2))>"
+e "<$(((9+3)/2))>"
+e "<$((9 / ( 3 / 2 )))>"
+e "<$((9/(3/2)))>"
+e "<$((( 9 << 1 ) + 2))>"
+e "<$(((9<<1)+2))>"
+e "<$((9 + (3 << 2)))>"
+e "<$((9+(3<<2)))>"
+e "<$((9 << (3 << 2)))>"
+e "<$((9<<(3<<2)))>"
+e "<$(((9 >> 1) + 2))>"
+e "<$(((9>>1)+2))>"
+e "<$((9 + (3 >> 2)))>"
+e "<$((9+(3>>2)))>"
+e "<$((19 >> (3 >> 1)))>"
+e "<$((19>>(3>>1)))>"
+e "<$((19 >> (3 << 1)))>"
+e "<$((19>>(3<<1)))>"
+e "<$((19 << (3 >> 1)))>"
+e "<$((19<<(3>>1)))>"
+e "<$((2 + (3 < 3) * 2))>"
+e "<$((2+(3<3)*2))>"
+e "<$((2 << ((3 >= 3) << 2)))>"
+e "<$((2<<((3>=3)<<2)))>"
+e "<$(((0xfD & 0xF) == 0xF))>"
+e "<$(((0xfD&0xF)==0xF))>"
+e "<$((3 * (7 , 2) << (8 ,  9 - 7)))>"
+e "<$((3*(7,2)<<(8,9-7)))>"
+#
+# COND BELOW
+e '= ASSIGN I'
+unset I;p "<$(( I = 3 ))>";e "<$I>"
+unset I;p "<$((I=3))>";e "<$I>"
+s I;p "<$((I=3))>";e "<$I>"
+s I;p "<$((I+=1))>";e "<$I>"
+s I;p "<$((I-=1))>";e "<$I>"
+s I;p "<$((I*=1))>";e "<$I>"
+s I;p "<$((I*=2))>";e "<$I>"
+s I;p "<$((I/=1))>";e "<$I>"
+s I;p "<$((I/=2))>";e "<$I>"
+s I;p "<$((I%=1))>";e "<$I>"
+s I;p "<$((I%=2))>";e "<$I>"
+s I;p "<$((I**=1))>";e "<$I>"
+s I;p "<$((I**=2))>";e "<$I>"
+s I;p "<$((I**=1+1))>";e "<$I>"
+s I;p "<$((I|=1))>";e "<$I>"
+s I;p "<$((I^=1))>";e "<$I>";p "<$((I^=1))>";e "<$I>"
+s I;p "<$((I&=2))>";e "<$I>"
+s I;p "<$((I>>=1))>";e "<$I>"
+s I;p "<$((I<<=1))>";e "<$I>"
+s I=-1;p "<$((I>>>=1))>";e "<$I>"
+e '= ASSIGN II'
+s I=2;p "<$(((I+=1)-1))>";e "<$I>"
+s I=4;p "<$(((I-=1)+1))>";e "<$I>"
+s I=0 J=0;p "<$(((I=5)*(J=7)+1))>";e "<$I><$J>"
+s I™ J;p "<$(((I+=1)*(J-=2)+1))>";e "<$I><$J>"
+s I;p "<$((I=2,I|=1))>";e "<$I>"
+s I=0 J=0 Y=0 Z=0;p "<$((I=1,J=2,Y=3,Z=4,Z+=I+J+Y))>";e "<$I><$J><$Y><$Z>"
+e '= POSTFIX'
+s I=1;p "<$((I++))>";e "<$I>"
+s I=1 J=0;p "<$((J=I++))>";e "<$I><$J>"
+s I=1 J;p "<$((J++*I++))>";e "<$I><$J>"
+s I=1 J;p "<$(((J++)*(I++)))>";e "<$I><$J>"
+s I=1;p "<$((I--))>";e "<$I>"
+s I=1 J=0;p "<$((J=I--))>";e "<$I><$J>"
+s I=1 J;p "<$((J--*I--))>";e "<$I><$J>"
+s I=1 J;p "<$(((J--)*(I--)))>";e "<$I><$J>"
+e '= PREFIX'
+s I=1;p "<$((++I))>";e "<$I>"
+s I=1 J=0;p "<$((J=++I))>";e "<$I><$J>"
+s I=1 J;p "<$((++J*++I))>";e "<$I><$J>"
+s I=1 J;p "<$((++(J)*++(I)))>";e "<$I><$J>"
+s I=1 J;p "<$(((++J)*(++I)))>";e "<$I><$J>"
+s I=1;p "<$((--I))>";e "<$I>"
+s I=1 J=0;p "<$((J=--I))>";e "<$I><$J>"
+s I=2 J;p "<$((--J*--I))>";e "<$I><$J>"
+s I=1 J;p "<$((--(J)*--(I)))>";e "<$I><$J>"
+s I=1 J;p "<$(((--J)*(--I)))>";e "<$I><$J>"
+e '= VAR RECUR'
+s I='1 + 1';p "<$((I))>";e "<$I>"
+s I='1 + 1';p "<$((+I))>";e "<$I>"
+s I='1 + 1';p "<$((++I))>";e "<$I>"
+s I='1 + 1';p "<$((I++))>";e "<$I>"
+s I='1 + 1';p "<$((1+I))>";e "<$I>"
+s I='1 + 1 * 2';p "<$((I+1))>";e "<$I>"
+s I='(1 + 1) * 2';p "<$((I+1))>";e "<$I>"
+s I='1 + 1' J='3 / 2';p "<$((I=I+J))>";e "<$I><$J>"
+s I='1 + 1';p "<$((I=I))>";e "<$I>"
+s I='1 + 1';p "<$((I=+I))>";e "<$I>"
+s I='1 + 1';p "<$((I=1+I))>";e "<$I>"
+s I='1 + 1 * 2';p "<$((I=I+1))>";e "<$I>"
+s I='(1 + 1) * 2';p "<$((I=I+1))>";e "<$I>"
+s I='1 + 1' J='3 / 2';p "<$((I+=I+J))>";e "<$I><$J>"
+e '= COMMA'
+e "<$(( 1 , 2 ))>"
+e "<$(( 1 , 2 , 3 ))>"
+e "<$(( 1 , 2	,	3 , 4 ))>"
+e "<$((1,2,3,4))>"
+s I='1 + 1';p "<$(( I , I+=I, I=I**2, I/=3 ))>";e "<$I>"
+s I1=I2 I2=3;p "<$((I1,I2))>";e "<$I1><$I2>"
+e '= COND'
+e "<$(( +0 ? 2 : 3 ))>"
+e "<$((-0?2:3))>"
+e "<$(( +1 ? 2 : 3 ))>"
+e "<$(( 1-1 ? 2 : 3 ))>"
+e "<$(( 1-0 ? 2 : 3 ))>"
+e "<$((-1?2:3))>"
+e "<$(( 0x1234 ? 111 : 222 ))>"
+e "<$((1**2 ? 5 : 7))>"
+e "<$((0**2 ? 5 : 7))>"
+e "<$((0**2>=0?5:7))>"
+e "<$((-1<=0**2?5:7))>"
+e "<$((1<=0**2?5:7))>"
+e "<$((1>2||1*0?5:7))>"
+e "<$((1>2&&1*0?5:7))>"
+e "<$((1<2&&1*0?5:7))>"
+e "<$((1<2&&1*0+1?5:7))>"
+e '-- COND .2'
+e "<$(( 1 < 2 ? -1 : 1 > 2 ? 1 : 0 ))>"
+e "<$((1 < 1 ? -1 : 1 > 1 ? 1 : 0))>"
+e "<$((2<1?-1:2>1?1:0))>"
+e "<$((4<5 ? 1 : 32))>"
+e "<$((4>5 ? 1 : 32))>"
+e "<$((4>(2+3) ? 1 : 32))>"
+e "<$((4<(2+3) ? 1 : 32))>"
+e "<$(((2+2)<(2+3) ? 1 : 32))>"
+e "<$(((2+2)>(2+3) ? 1 : 32))>"
+## grouping protects precedence in : parts (syntax error tests below)
+e '-- COND .3'
+e "<$((1-1 < 1 ? 2,4 : 1,3))>"
+e "<$((0<1?2,4:(1,3)))>"
+e "<$((0,1,2,0?2,4:1,3))>"
+e "<$((0,1,2,1?2,4:1,3))>"
+e "<$((0,1,2,0?2,4:(1,3)))>"
+e "<$((0,1,2,1?2,4:(1,3)))>"
+e "<$((0,1,2,0?(2,4):1,3))>"
+e "<$((0,1,2,1?(2,4):1,3))>"
+e "<$((0,1,2,0?(2,4):(1,3)))>"
+e "<$((0,1,2,1?(2,4):(1,3)))>"
+e "<$((0?2:((0,3)?1:4)))>"
+e "<$((1?2:3,0?1:4))>"
+e "<$((1?2:3,0?1:4?5:6))>"
+e "<$((1?2:(3,0)?1:4?5:6))>"
+e "<$((1?2:3,0?4,5:5,6?7,8:9,10))>"
+e "<$((1?2:(3,0)?4,5:5,6?7,8:9,10))>"
+e "<$((1?2:(3,0)?(4,5):5,6?7,8:9,10))>"
+e "<$((1?2:(3,0)?(4,5):(5,6)?7,8:9,10))>"
+e "<$((1?2:(3,0)?(4,5):(5,6)?(7,8):9,10))>"
+e "<$((1?2:(3,0)?(4,5):(5,6)?(7,8):(9,10)))>"
+e "<$((1?2:3,1?4,5:5,6?7,8:9,10))>"
+e "<$((1?2:(3,1)?4,5:5,6?7,8:9,10))>"
+e "<$((1?2:(3,1)?(4,5):5,6?7,8:9,10))>"
+e "<$((1?2:(3,1)?(4,5):(5,6)?7,8:9,10))>"
+e "<$((1?2:(3,1)?(4,5):(5,6)?(7,8):9,10))>"
+e "<$((1?2:(3,1)?(4,5):(5,6)?(7,8):(9,10)))>"
+e "<$((0?2:(3,1)?(4,5):(5,6)?(7,8):(9,10)))>"
+e "<$((0?2:(3,1)?4,5:(5,6)?7,8:(9,10)))>"
+e "<$((0?2:(3,0)?(4,5):(5,6)?(7,8):(9,10)))>"
+e "<$((0?2:(3,0)?4,5:(5,6)?7,8:(9,10)))>"
+e "<$((0?2:(3,0)?(4,5):(5,0)?(7,8):(9,10)))>"
+e "<$((0?2:(3,0)?4,5:(5,0)?7,8:(9,10)))>"
+e "<$((0?2:3,0?4,5:(5,0)?7,8:(9,10)))>"
+e "<$((0?2:(3,0)?4,5:5,0?7,8:(9,10)))>"
+e "<$((0?2:(3,0)?4,5:(5,0)?7,8:9,10))>"
+e '-- COND .4'
+e "<$((1?2?3?4?5:6:7:8:9))>"
+e "<$((1?2?3?0?5:6:7:8:9))>"
+e "<$((1?2?0?0?5:6:7:8:9))>"
+e "<$((1?0?0?0?5:6:7:8:9))>"
+e "<$((0?0?0?0?5:6:7:8:9))>"
+e "<$((0?3+4?10:11:5+6?12:13))>"
+e "<$((1?3+4?10:11:5+6?12:13))>"
+e "<$((0?(3+4)?(10):(11):((5+6)?12:13)))>"
+e "<$((1?(3+4)?(10):(11):((5+6)?12:13)))>"
+e '-- COND .5'
+e "<$((0?3+4?10:11?20+1:22*1:5+6?12:13))>"
+e "<$((1?3+4?10:11?20+1:22*1:5+6?12:13))>"
+e "<$((0?(3+4)?(10):(11)?(20+1):(22*1):((5+6)?12:13)))>"
+e "<$((1?(3+4)?(10):(11)?(20+1):(22*1):((5+6)?12:13)))>"
+e '-- COND .6'
+e "<$((0?3+4?9:11?20+1:22*1:5+6?12:13))>"
+e "<$((1?3+4?9:11?20+1:22*1:5+6?12:13))>"
+e "<$((0?10+11?20+1?22*1?23**1:24**1:25/1?26%27:56>>1:-1:-2))>"
+e "<$((1?0?20+1?22*1?23**1:24**1:25/1?26%27:56>>1:-1:-2))>"
+e "<$((1?10?20+1?22*1?23**1:24**1:25/1?26%27:56>>1:-1:-2))>"
+e "<$((1?10?0?22*1?23**1:24**1:25/1?26%27:56>>1:-1:-2))>"
+e "<$((1?10?20?0?23**1:24**1:25/1?26%27:56>>1:-1:-2))>"
+e "<$((1?10?20?22*1?0:24**1:25/1?26%27:56>>1:-1:-2))>"
+e "<$((1?10?20?22*1?23**1:0:25/1?26%27:56>>1:-1:-2))>"
+e "<$((1?10?20?22*1?23**1:24**1:0?26%27:56>>1:-1:-2))>"
+e "<$((1?10?20?22*1?23**1:24**1:25/1?0:56>>1:-1:-2))>"
+e '-- COND .7'
+s I1=2 I2=3 I3=4 I4=5;\
+   p "<$(( (I1 < I2) ? (I2 < I3) ? I3 *= I3 : (I2 *= I2) : (I1 *= I1)))>";\
+   e "<$I1><$I2><$I3><$I4>"
+s I1=2 I2=3 I3=4 I4=5;\
+   p "<$(( (I1 < I2) ? ((I2 < I3) ? I3 *= I3 : (I2 *= I2)) : (I1 *= I1)))>";\
+   e "<$I1><$I2><$I3><$I4>"
+s I1=2 I2=3 I3=4 I4=5;\
+   p "<$((((I1<I2)?((I2<I3)?(I3*=I3):(I2*=I2)):(I1*=I1))))>";\
+   e "<$I1><$I2><$I3><$I4>"
+s I1=2 I2=3 I3=4 I4=5;\
+p "<$(((I1<I2)?(I2<I3)?(I3<I4)?I4*=I4:(I3*=I3):(I2*=I2):(I1*=I1)))>";\
+   e "<$I1><$I2><$I3><$I4><$I5>"
+# only first
+s I1=2 I2=3 I3=4 I4=5;\
+   p "<$(( (I1 < I2) ? (I2 > I3) ? I3 *= I3 : (I2 *= I2) : (I1 *= I1)))>";\
+   e "<$I1><$I2><$I3><$I4>"
+s I1=2 I2=3 I3=4 I4=5;\
+   p "<$(((I1<I2)?(I2>I3)?I3*=I3:(I2*=I2):(I1*=I1)))>";\
+   e "<$I1><$I2><$I3><$I4>"
+s I1=2 I2=3 I3=4 I4=5;\
+   p "<$(( (I1 < I2) ? ((I2 > I3) ? I3 *= I3 : (I2 *= I2)) : (I1 *= I1)))>";\
+   e "<$I1><$I2><$I3><$I4>"
+s I1=2 I2=3 I3=4 I4=5;\
+   p "<$(( ((I1 < I2) ? ((I2 > I3) ? (I3 *= I3):(I2 *= I2)):(I1 *= I1))))>";\
+   e "<$I1><$I2><$I3><$I4>"
+s I1=2 I2=3 I3=4 I4=5;\
+p "<$(((I1<I2)?(I2>I3)?(I3>I4)?I4*=I4:(I3*=I3):(I2*=I2):(I1*=I1)))>";\
+   e "<$I1><$I2><$I3><$I4>"
+# last not etc.
+s I1=2 I2=3 I3=4 I4=5;\
+p "<$(((I1<I2)?(I2<I3)?(I3>I4)?I4*=I4:(I3*=I3):(I2*=I2):(I1*=I1)))>";\
+   e "<$I1><$I2><$I3><$I4>"
+s I1=2 I2=3 I3=4 I4=5;\
+p "<$(((I1<I2)?(I2>I3)?(I3<I4)?I4*=I4:(I3*=I3):(I2*=I2):(I1*=I1)))>";\
+   e "<$I1><$I2><$I3><$I4><$I5>"
+s I1=2 I2=3 I3=4 I4=5;\
+p "<$(((I1>I2)?(I2<I3)?(I3<I4)?I4*=I4:(I3*=I3):(I2*=I2):(I1*=I1)))>";\
+   e "<$I1><$I2><$I3><$I4><$I5>"
+e '-- COND .8'
+s I=0;p "<$((1?I=2:(I=3),8,10))>";e "<$I>"
+s I=0;p "<$((1?20:(I+=2)))>";e "<$I>"
+s I=0;p "<$((1?I+:(I+=2)))>";e "<$I>"
+s I=0;p "<$((0?I+=2:20))>";e "<$I>"
+s I=0;p "<$((0?I+=2:(I+)))>";e "<$I>"
+s I=0;p "<$((0?(I+=2):(20)))>";e "<$I>"
+s I=0;p "<$((0?(I+=2):(I+ )))>";e "<$I>"
+e '-- COND .9'
+s I1=+E+ I2=1+1;p "<$((0?I1:I2))>";e "<$I1><$I2>"
+s I1=1+1 I2=+E+;p "<$((1?I1:I2))>";e "<$I1><$I2>"
+s I1=+E+ I2=1+1;p "<$((0?I1=1:(I2=2)))>";e "<$I1><$I2>"
+s I1=1+1 I2=+E+;p "<$((1?I1=1:(I2=2)))>";e "<$I1><$I2>"
+s I1=+E+ I2=1+1;p "<$((0?I1*=I1:(I2*=I2)))>";e "<$I1><$I2>"
+s I1=1+1 I2=+E+;p "<$((1?I1*=I1:(I2*=I2)))>";e "<$I1><$I2>"
+e '-- COND .10'
+s I1=+E+ I2=+E+ I3=+E+ I4=-1;p "<$((0?I1?I2:I3:I4))>";e "<$I1><$I2><$I3><$I4>"
+s I1=1 I2=2 I3=+E+ I4=+E+;p "<$((1?I1?I2:I3:I4))>";e "<$I1><$I2><$I3><$I4>"
+s I1=0 I2=+E+ I3=3 I4=+E+;p "<$((1?I1?I2:I3:I4))>";e "<$I1><$I2><$I3><$I4>"
+e '= WILD I'
+e "<$((  3          +           (      11       )  ))>"
+e "<$((1 + (2 - 2)))>"
+e "<$((1 + (2 - 2)))>"
+e "<$(( (( 3 / 3 )) + ((1*1*1)) - (( 7 % 6 ))))>"
+e "<$(( 3+((2 * 2))/6 ))>"
+e "<$(( 1 + 1 - 3 * 3 + 99-88 / 17))>"
+e "<$(( 1 << 2 % 1+2 * 4 - (2 + 2 + 1) * 6 / 7 + 4 * 2 + (81/9)))>"
+s I1=I2 I2=3;p "<$((I1 + I2))>";e "<$I1><$I2>"
+s I1=I2 I2=3;p "<$((I1 * I2))>";e "<$I1><$I2>"
+s I1=I2 I2=3;p "<$((I1 % I2))>";e "<$I1><$I2>"
+e '= WILD II'
+s I;p "<$((3+(3*(I))))>";e "<$I>"
+s I;p "<$((3+(3*(I++))))>";e "<$I>"
+s I;p "<$((3+(3*(I,I++))))>";e "<$I>"
+s I;p "<$((3+(3*(I,++I))))>";e "<$I>"
+s I;p "<$((3+(3*(I,++++I))))>";e "<$I>"
+s I;p "<$((3+(3*(I,+++++++++++++++++++++++-+++++I))))>";e "<$I>"
+e "<$((3+(3*(+++++++++++++++++++++++-+++++10))))>"
+s I;p "<$(( +10 + + +I ))>";e "<$I>"
+s I;p "<$(( +10 + ++I ))>";e "<$I>"
+s I;p "<$(( +10 ++ +I ))>";e "<$I>"
+s I;p "<$(( +10 +++ I ))>";e "<$I>"
+s I;p "<$(( +10+++I ))>";e "<$I>"
+s I;p "<$((+10++I))>";e "<$I>"
+s I;p "<$((+10 + + + ++++ +I))>";e "<$I>"
+e "<$(( +10 + + + ++++ +11 ))>"
+e "<$(( +10 + + + ++++ ++11 ))>"
+e "<$((+10++++++++11))>"
+e '= WILD RECUR' # (some yet)
+s I1=I2 I2=5;p "<$((I1+=I2))>";e "<$I1><$I2>"
+s I1=I2 I2=5 I3=I2+=1;p "<$((I1))>";e "<$I1><$I2><$I3>"
+s I1=I2 I2=5 I3=I2+=1;p "<$((I1,I3))>";e "<$I1><$I2><$I3>"
+s I1=I2 I2=5 I3=I2+=1;p "<$((I1+I3))>";e "<$I1><$I2><$I3>"
+s I1=I2 I2=5 I3=I2+=1;p "<$((I1?I1:I3))>";e "<$I1><$I2><$I3>"
+s I1=I2=0 I2=5 I3=I2+=1;p "<$((I1?I1:I3))>";e "<$I1><$I2><$I3>"
+s I1=I1 I2=5 I3=I2+=1;p "<$((I1=0?I1:I3))>";e "<$I1><$I2><$I3>"
+s I1=I1 I2=5 I3=I2+=1;p "<$((I1=1?I1:I3))>";e "<$I1><$I2><$I3>"
+s I1=I2='(I2)+1' I2=5 I3=I2+=1;p "<$((I1,I3))>";e "<$I1><$I2><$I3>"
+s I1=I2='(I2=(I2)+1)' I2=5 I3=I2+=1;p "<$((I1,I3))>";e "<$I1><$I2><$I3>"
+s I1=I2 I2=5 I3=I2+=1;p "<$((I1+I3*I1*I3/I1%I3))>";e "<$I1><$I2><$I3>"
+s I1=I2 I2=5 I3=I2+=1;p "<$((I1+I3*I1*I3/I1%I3))>";e "<$I1><$I2><$I3>"
+s I1=I2=+E+ I2=5;p "<$((I1))>";e "<$I1><$I2>"
+s I1=I2=+E+ I2=5;p "<$((0?I1:++I2))>";e "<$I1><$I2>"
+s I1=I2 I2=5;p "<$((I2,(1?I1:++I2)))>";e "<$I1><$I2>"
+s I1=5 I2 I3 ;p "<$((I1-=5,1?I2:I3))>";e "<$I1><$I2><$I3>"
+s I1=5 Ix=6 I2 I3 ;p "<$((I1=Ix,1?I2:I3))>";e "<$I1><$I2><$I3>"
+s I1=5 Ix=6 I2 I3 ;p "<$((I1=Ix?I2:I3))>";e "<$I1><$I2><$I3>"
+s I1=5 Ix=6 I2 I3 ;p "<$((I1*=Ix?I2:I3))>";e "<$I1><$I2><$I3>"
+s I1=5 Ix=6 I2 I3 ;p "<$((0,I1*=Ix?I2:I3))>";e "<$I1><$I2><$I3>"
+s I1=5 Ix=6 I2 I3 ;p "<$((I1*=Ix?I2:I3,Ix!,I1*=Ix?I2:I3))>";e "<$I1><$I2><$I3>"
--
2.37.2


--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic