--- 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><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><10> +<100><I2=10><10> +<0><I2=10><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><10><I2+=1> +<11><I2=10><11><I2+=1> +<21><I2=10><11><I2+=1> +<10><I2=10><10><I2+=1> +<1><I2=0><1><I2+=1> +<6><6><6><I2+=1> +<10><10><5><I2+=1> +<12><I2=(I2=10)+1><12><I2+=1> +<12><I2=(I2=(I2=10)+1)><12><I2+=1> +<10><I2=10><11><I2+=1> +<10><I2=10><11><I2+=1> +<10><10><5> +<6><I2=+E+><6> +<10><I2=10><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=echo;alias s=export +s I=10 J=33 +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 I=33 J=33;e "<$((I||J))>" +s I=33 J=33;e "<$(( I || J ))>" +e "<$((0||1))>" +e "<$((0||0000000000000000000000001))>" +e "<$((1||2))>" +e "<$((0x1234 || 04660))>" +e "<$((0x1234 || 0x11064))>" +s I=10 J=33;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 I=33 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 I=33 J=33;e "<$((I&&J))>" +s I=33 J=33;e "<$(( I && J ))>" +e "<$((0&&1))>" +e "<$((0&&0000000000000000000000001))>" +e "<$((1&&2))>" +e "<$((0x1234 && 04660))>" +e "<$((0x1234 && 0x11064))>" +s I=10 J=33;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 I=33 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 I=33 J=33;e "<$((I==J))>" +s I=33 J=33;e "<$(( I == J ))>" +e "<$((0==1))>" +e "<$((0==0000000000000000000000001))>" +e "<$((1==2))>" +e "<$((0x1234 == 04660))>" +e "<$((0x1234 == 0x11064))>" +s I=10 J=33;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 I=33 J=33;e "<$((I!=J))>" +s I=33 J=33;e "<$(( I != J ))>" +e "<$((0!=1))>" +e "<$((0!=0000000000000000000000001))>" +e "<$((1!=2))>" +e "<$((0x1234 != 04660))>" +e "<$((0x1234 != 0x11064))>" +s I=10 J=33;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 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))>" +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 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))>" +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 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))>" +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 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))>" +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=10;p "<$((I=3))>";e "<$I>" +s I=10;p "<$((I+=1))>";e "<$I>" +s I=10;p "<$((I-=1))>";e "<$I>" +s I=10;p "<$((I*=1))>";e "<$I>" +s I=10;p "<$((I*=2))>";e "<$I>" +s I=10;p "<$((I/=1))>";e "<$I>" +s I=10;p "<$((I/=2))>";e "<$I>" +s I=10;p "<$((I%=1))>";e "<$I>" +s I=10;p "<$((I%=2))>";e "<$I>" +s I=10;p "<$((I**=1))>";e "<$I>" +s I=10;p "<$((I**=2))>";e "<$I>" +s I=10;p "<$((I**=1+1))>";e "<$I>" +s I=10;p "<$((I|=1))>";e "<$I>" +s I=10;p "<$((I^=1))>";e "<$I>";p "<$((I^=1))>";e "<$I>" +s I=10;p "<$((I&=2))>";e "<$I>" +s I=10;p "<$((I>>=1))>";e "<$I>" +s I=10;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=99 J=17;p "<$(((I+=1)*(J-=2)+1))>";e "<$I><$J>" +s I=10;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=10;p "<$((J++*I++))>";e "<$I><$J>" +s I=1 J=10;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=10;p "<$((J--*I--))>";e "<$I><$J>" +s I=1 J=10;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=10;p "<$((++J*++I))>";e "<$I><$J>" +s I=1 J=10;p "<$((++(J)*++(I)))>";e "<$I><$J>" +s I=1 J=10;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=10;p "<$((--J*--I))>";e "<$I><$J>" +s I=1 J=10;p "<$((--(J)*--(I)))>";e "<$I><$J>" +s I=1 J=10;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=10 , I+=I, I=I**2, I/=3 ))>";e "<$I>" +s I1=I2=10 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+=10:(I+=2)))>";e "<$I>" +s I=0;p "<$((0?I+=2:20))>";e "<$I>" +s I=0;p "<$((0?I+=2:(I+=10)))>";e "<$I>" +s I=0;p "<$((0?(I+=2):(20)))>";e "<$I>" +s I=0;p "<$((0?(I+=2):(I+=20)))>";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=10 I2=3;p "<$((I1 + I2))>";e "<$I1><$I2>" +s I1=I2=10 I2=3;p "<$((I1 * I2))>";e "<$I1><$I2>" +s I1=I2=10 I2=3;p "<$((I1 % I2))>";e "<$I1><$I2>" +e '= WILD II' +s I=10;p "<$((3+(3*(I=11))))>";e "<$I>" +s I=10;p "<$((3+(3*(I++))))>";e "<$I>" +s I=10;p "<$((3+(3*(I=11,I++))))>";e "<$I>" +s I=10;p "<$((3+(3*(I=11,++I))))>";e "<$I>" +s I=10;p "<$((3+(3*(I=11,++++I))))>";e "<$I>" +s I=10;p "<$((3+(3*(I=11,+++++++++++++++++++++++-+++++I))))>";e "<$I>" +e "<$((3+(3*(+++++++++++++++++++++++-+++++10))))>" +s I=10;p "<$(( +10 + + +I ))>";e "<$I>" +s I=10;p "<$(( +10 + ++I ))>";e "<$I>" +s I=10;p "<$(( +10 ++ +I ))>";e "<$I>" +s I=10;p "<$(( +10 +++ I ))>";e "<$I>" +s I=10;p "<$(( +10+++I ))>";e "<$I>" +s I=10;p "<$((+10++I))>";e "<$I>" +s I=10;p "<$((+10 + + + ++++ +I))>";e "<$I>" +e "<$(( +10 + + + ++++ +11 ))>" +e "<$(( +10 + + + ++++ ++11 ))>" +e "<$((+10++++++++11))>" +e '= WILD RECUR' # (some yet) +s I1=I2=10 I2=5;p "<$((I1+=I2))>";e "<$I1><$I2>" +s I1=I2=10 I2=5 I3=I2+=1;p "<$((I1))>";e "<$I1><$I2><$I3>" +s I1=I2=10 I2=5 I3=I2+=1;p "<$((I1,I3))>";e "<$I1><$I2><$I3>" +s I1=I2=10 I2=5 I3=I2+=1;p "<$((I1+I3))>";e "<$I1><$I2><$I3>" +s I1=I2=10 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=10 I2=5 I3=I2+=1;p "<$((I1=0?I1:I3))>";e "<$I1><$I2><$I3>" +s I1=I1=10 I2=5 I3=I2+=1;p "<$((I1=1?I1:I3))>";e "<$I1><$I2><$I3>" +s I1=I2='(I2=10)+1' I2=5 I3=I2+=1;p "<$((I1,I3))>";e "<$I1><$I2><$I3>" +s I1=I2='(I2=(I2=10)+1)' I2=5 I3=I2+=1;p "<$((I1,I3))>";e "<$I1><$I2><$I3>" +s I1=I2=10 I2=5 I3=I2+=1;p "<$((I1+I3*I1*I3/I1%I3))>";e "<$I1><$I2><$I3>" +s I1=I2=10 I2=5 I3=I2+=1;p "<$((I1+I3*I1*I3/I1%I3))>";e "<$I1><$I2><$I3>" +s I1=I2=+E+ I2=5;p "<$((I1=10))>";e "<$I1><$I2>" +s I1=I2=+E+ I2=5;p "<$((0?I1:++I2))>";e "<$I1><$I2>" +s I1=I2=10 I2=5;p "<$((I2,(1?I1:++I2)))>";e "<$I1><$I2>" +s I1=5 I2=10 I3=20;p "<$((I1-=5,1?I2:I3))>";e "<$I1><$I2><$I3>" +s I1=5 Ix=6 I2=10 I3=20;p "<$((I1=Ix,1?I2:I3))>";e "<$I1><$I2><$I3>" +s I1=5 Ix=6 I2=10 I3=20;p "<$((I1=Ix?I2:I3))>";e "<$I1><$I2><$I3>" +s I1=5 Ix=6 I2=10 I3=20;p "<$((I1*=Ix?I2:I3))>";e "<$I1><$I2><$I3>" +s I1=5 Ix=6 I2=10 I3=20;p "<$((0,I1*=Ix?I2:I3))>";e "<$I1><$I2><$I3>" +s I1=5 Ix=6 I2=10 I3=20;p "<$((I1*=Ix?I2:I3,Ix=21,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><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><10> +<100><I2=10><10> +<0><I2=10><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><10><I2+=1> +<11><I2=10><11><I2+=1> +<21><I2=10><11><I2+=1> +<10><I2=10><10><I2+=1> +<1><I2=0><1><I2+=1> +<6><6><6><I2+=1> +<10><10><5><I2+=1> +<12><I2=(I2=10)+1><12><I2+=1> +<12><I2=(I2=(I2=10)+1)><12><I2+=1> +<10><I2=10><11><I2+=1> +<10><I2=10><11><I2+=1> +<10><10><5> +<6><I2=+E+><6> +<10><I2=10><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=echo;alias s=export +s I=10 J=33 +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 I=33 J=33;e "<$((I||J))>" +s I=33 J=33;e "<$(( I || J ))>" +e "<$((0||1))>" +e "<$((0||0000000000000000000000001))>" +e "<$((1||2))>" +e "<$((0x1234 || 04660))>" +e "<$((0x1234 || 0x11064))>" +s I=10 J=33;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 I=33 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 I=33 J=33;e "<$((I&&J))>" +s I=33 J=33;e "<$(( I && J ))>" +e "<$((0&&1))>" +e "<$((0&&0000000000000000000000001))>" +e "<$((1&&2))>" +e "<$((0x1234 && 04660))>" +e "<$((0x1234 && 0x11064))>" +s I=10 J=33;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 I=33 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 I=33 J=33;e "<$((I==J))>" +s I=33 J=33;e "<$(( I == J ))>" +e "<$((0==1))>" +e "<$((0==0000000000000000000000001))>" +e "<$((1==2))>" +e "<$((0x1234 == 04660))>" +e "<$((0x1234 == 0x11064))>" +s I=10 J=33;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 I=33 J=33;e "<$((I!=J))>" +s I=33 J=33;e "<$(( I != J ))>" +e "<$((0!=1))>" +e "<$((0!=0000000000000000000000001))>" +e "<$((1!=2))>" +e "<$((0x1234 != 04660))>" +e "<$((0x1234 != 0x11064))>" +s I=10 J=33;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 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))>" +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 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))>" +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 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))>" +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 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))>" +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=10;p "<$((I=3))>";e "<$I>" +s I=10;p "<$((I+=1))>";e "<$I>" +s I=10;p "<$((I-=1))>";e "<$I>" +s I=10;p "<$((I*=1))>";e "<$I>" +s I=10;p "<$((I*=2))>";e "<$I>" +s I=10;p "<$((I/=1))>";e "<$I>" +s I=10;p "<$((I/=2))>";e "<$I>" +s I=10;p "<$((I%=1))>";e "<$I>" +s I=10;p "<$((I%=2))>";e "<$I>" +s I=10;p "<$((I**=1))>";e "<$I>" +s I=10;p "<$((I**=2))>";e "<$I>" +s I=10;p "<$((I**=1+1))>";e "<$I>" +s I=10;p "<$((I|=1))>";e "<$I>" +s I=10;p "<$((I^=1))>";e "<$I>";p "<$((I^=1))>";e "<$I>" +s I=10;p "<$((I&=2))>";e "<$I>" +s I=10;p "<$((I>>=1))>";e "<$I>" +s I=10;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=99 J=17;p "<$(((I+=1)*(J-=2)+1))>";e "<$I><$J>" +s I=10;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=10;p "<$((J++*I++))>";e "<$I><$J>" +s I=1 J=10;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=10;p "<$((J--*I--))>";e "<$I><$J>" +s I=1 J=10;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=10;p "<$((++J*++I))>";e "<$I><$J>" +s I=1 J=10;p "<$((++(J)*++(I)))>";e "<$I><$J>" +s I=1 J=10;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=10;p "<$((--J*--I))>";e "<$I><$J>" +s I=1 J=10;p "<$((--(J)*--(I)))>";e "<$I><$J>" +s I=1 J=10;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=10 , I+=I, I=I**2, I/=3 ))>";e "<$I>" +s I1=I2=10 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+=10:(I+=2)))>";e "<$I>" +s I=0;p "<$((0?I+=2:20))>";e "<$I>" +s I=0;p "<$((0?I+=2:(I+=10)))>";e "<$I>" +s I=0;p "<$((0?(I+=2):(20)))>";e "<$I>" +s I=0;p "<$((0?(I+=2):(I+=20)))>";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=10 I2=3;p "<$((I1 + I2))>";e "<$I1><$I2>" +s I1=I2=10 I2=3;p "<$((I1 * I2))>";e "<$I1><$I2>" +s I1=I2=10 I2=3;p "<$((I1 % I2))>";e "<$I1><$I2>" +e '= WILD II' +s I=10;p "<$((3+(3*(I=11))))>";e "<$I>" +s I=10;p "<$((3+(3*(I++))))>";e "<$I>" +s I=10;p "<$((3+(3*(I=11,I++))))>";e "<$I>" +s I=10;p "<$((3+(3*(I=11,++I))))>";e "<$I>" +s I=10;p "<$((3+(3*(I=11,++++I))))>";e "<$I>" +s I=10;p "<$((3+(3*(I=11,+++++++++++++++++++++++-+++++I))))>";e "<$I>" +e "<$((3+(3*(+++++++++++++++++++++++-+++++10))))>" +s I=10;p "<$(( +10 + + +I ))>";e "<$I>" +s I=10;p "<$(( +10 + ++I ))>";e "<$I>" +s I=10;p "<$(( +10 ++ +I ))>";e "<$I>" +s I=10;p "<$(( +10 +++ I ))>";e "<$I>" +s I=10;p "<$(( +10+++I ))>";e "<$I>" +s I=10;p "<$((+10++I))>";e "<$I>" +s I=10;p "<$((+10 + + + ++++ +I))>";e "<$I>" +e "<$(( +10 + + + ++++ +11 ))>" +e "<$(( +10 + + + ++++ ++11 ))>" +e "<$((+10++++++++11))>" +e '= WILD RECUR' # (some yet) +s I1=I2=10 I2=5;p "<$((I1+=I2))>";e "<$I1><$I2>" +s I1=I2=10 I2=5 I3=I2+=1;p "<$((I1))>";e "<$I1><$I2><$I3>" +s I1=I2=10 I2=5 I3=I2+=1;p "<$((I1,I3))>";e "<$I1><$I2><$I3>" +s I1=I2=10 I2=5 I3=I2+=1;p "<$((I1+I3))>";e "<$I1><$I2><$I3>" +s I1=I2=10 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=10 I2=5 I3=I2+=1;p "<$((I1=0?I1:I3))>";e "<$I1><$I2><$I3>" +s I1=I1=10 I2=5 I3=I2+=1;p "<$((I1=1?I1:I3))>";e "<$I1><$I2><$I3>" +s I1=I2='(I2=10)+1' I2=5 I3=I2+=1;p "<$((I1,I3))>";e "<$I1><$I2><$I3>" +s I1=I2='(I2=(I2=10)+1)' I2=5 I3=I2+=1;p "<$((I1,I3))>";e "<$I1><$I2><$I3>" +s I1=I2=10 I2=5 I3=I2+=1;p "<$((I1+I3*I1*I3/I1%I3))>";e "<$I1><$I2><$I3>" +s I1=I2=10 I2=5 I3=I2+=1;p "<$((I1+I3*I1*I3/I1%I3))>";e "<$I1><$I2><$I3>" +s I1=I2=+E+ I2=5;p "<$((I1=10))>";e "<$I1><$I2>" +s I1=I2=+E+ I2=5;p "<$((0?I1:++I2))>";e "<$I1><$I2>" +s I1=I2=10 I2=5;p "<$((I2,(1?I1:++I2)))>";e "<$I1><$I2>" +s I1=5 I2=10 I3=20;p "<$((I1-=5,1?I2:I3))>";e "<$I1><$I2><$I3>" +s I1=5 Ix=6 I2=10 I3=20;p "<$((I1=Ix,1?I2:I3))>";e "<$I1><$I2><$I3>" +s I1=5 Ix=6 I2=10 I3=20;p "<$((I1=Ix?I2:I3))>";e "<$I1><$I2><$I3>" +s I1=5 Ix=6 I2=10 I3=20;p "<$((I1*=Ix?I2:I3))>";e "<$I1><$I2><$I3>" +s I1=5 Ix=6 I2=10 I3=20;p "<$((0,I1*=Ix?I2:I3))>";e "<$I1><$I2><$I3>" +s I1=5 Ix=6 I2=10 I3=20;p "<$((I1*=Ix?I2:I3,Ix=21,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