From 10fa928c1e637a61969a80924e7a2090ea5b6245 Mon Sep 17 00:00:00 2001 From: jberg Date: Tue, 9 Jul 2019 20:36:45 -0700 Subject: [PATCH] add basic maki operator tests (#802) --- .../basicTests.m | 277 ++++++++++++++++++ .../basicTests.maki | Bin 0 -> 6161 bytes .../v1.1.1.b3 (Winamp 3.0 full)/basicTests.m | 277 ++++++++++++++++++ .../basicTests.maki | Bin 0 -> 6241 bytes .../v1.1.13 (Winamp 5.02)/basicTests.m | 277 ++++++++++++++++++ .../v1.1.13 (Winamp 5.02)/basicTests.maki | Bin 0 -> 6932 bytes .../v1.2.0 (Winamp 5.66)/basicTests.m | 277 ++++++++++++++++++ .../v1.2.0 (Winamp 5.66)/basicTests.maki | Bin 0 -> 7127 bytes 8 files changed, 1108 insertions(+) create mode 100755 experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.1.b3 (Winamp 3.0 build 488d)/basicTests.m create mode 100755 experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.1.b3 (Winamp 3.0 build 488d)/basicTests.maki create mode 100755 experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.1.b3 (Winamp 3.0 full)/basicTests.m create mode 100755 experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.1.b3 (Winamp 3.0 full)/basicTests.maki create mode 100755 experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.13 (Winamp 5.02)/basicTests.m create mode 100755 experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.13 (Winamp 5.02)/basicTests.maki create mode 100755 experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.2.0 (Winamp 5.66)/basicTests.m create mode 100755 experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.2.0 (Winamp 5.66)/basicTests.maki diff --git a/experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.1.b3 (Winamp 3.0 build 488d)/basicTests.m b/experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.1.b3 (Winamp 3.0 build 488d)/basicTests.m new file mode 100755 index 00000000..ab08372f --- /dev/null +++ b/experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.1.b3 (Winamp 3.0 build 488d)/basicTests.m @@ -0,0 +1,277 @@ +#include "lib/std.mi" + +System.onScriptLoaded() +{ + Int sum = 2 + 2; + if (sum == 4) { + messageBox("2 + 2 = 4", "Success", 0, ""); + } else { + messageBox("2 + 2 = 4", "Fail", 1, ""); + } + + Float sumFloat = 2.2 + 2.2; + if (sumFloat == 4.4) { + messageBox("2.2 + 2.2 = 4.4", "Success", 0, ""); + } else { + messageBox("2.2 + 2.2 = 4.4", "Fail", 1, ""); + } + + if (3 - 2 == 1) { + messageBox("3 - 2 = 1", "Success", 0, ""); + } else { + messageBox("3 - 2 = 1", "Fail", 1, ""); + } + + if (3 - -2 == 5) { + messageBox("3 - -2 = 5", "Success", 0, ""); + } else { + messageBox("3 - -2 = 5", "Fail", 1, ""); + } + + if (3.5 - 2 == 1.5) { + messageBox("3.5 - 2 = 1.5", "Success", 0, ""); + } else { + messageBox("3.5 - 2 = 1.5", "Fail", 1, ""); + } + + if (2 * 3 == 6) { + messageBox("2 * 3 = 6", "Success", 0, ""); + } else { + messageBox("2 * 3 = 6", "Fail", 1, ""); + } + + if (2 * 1.5 == 3) { + messageBox("2 * 1.5 = 3", "Success", 0, ""); + } else { + messageBox("2 * 1.5 = 3", "Fail", 1, ""); + } + + if (6 / 3 == 2) { + messageBox("6 / 3 = 2", "Success", 0, ""); + } else { + messageBox("6 / 3 = 2", "Fail", 1, ""); + } + + if (3 / 2 == 1.5) { + messageBox("3 / 2 = 1.5", "Success", 0, ""); + } else { + messageBox("3 / 2 = 1.5", "Fail", 1, ""); + } + + if (5 % 2 == 1) { + messageBox("5 % 2 = 1", "Success", 0, ""); + } else { + messageBox("5 % 2 = 1", "Fail", 1, ""); + } + + if (5.5 % 2 == 1) { + messageBox("5.5 % 2 = 1 (implict casting)", "Success", 0, ""); + } else { + messageBox("5.5 % 2 = 1 (implict casting)", "Fail", 1, ""); + } + + if (3 & 2 == 2) { + messageBox("3 & 2 = 2", "Success", 0, ""); + } else { + messageBox("3 & 2 = 2", "Fail", 1, ""); + } + + if (3 | 2 == 3) { + messageBox("3 | 2 = 3", "Success", 0, ""); + } else { + messageBox("3 | 2 = 3", "Fail", 1, ""); + } + + if (2 << 1 == 4) { + messageBox("2 << 1 = 4", "Success", 0, ""); + } else { + messageBox("2 << 1 = 4", "Fail", 1, ""); + } + + if (4 >> 1 == 2) { + messageBox("4 >> 1 = 2", "Success", 0, ""); + } else { + messageBox("4 >> 1 = 2", "Fail", 1, ""); + } + + if (2.5 << 1 == 4) { + messageBox("2.5 << 1 = 4 (implict casting)", "Success", 0, ""); + } else { + messageBox("2.5 << 1 = 4 (implict casting)", "Fail", 1, ""); + } + + if (4.5 >> 1 == 2) { + messageBox("4.5 >> 1 = 2 (implict casting)", "Success", 0, ""); + } else { + messageBox("4.5 >> 1 = 2 (implict casting)", "Fail", 1, ""); + } + + Int one = 1; + Int two = 2; + if (one != two) { + messageBox("1 != 2", "Success", 0, ""); + } else { + messageBox("1 != 2", "Fail", 1, ""); + } + + if (one < two) { + messageBox("1 < 2", "Success", 0, ""); + } else { + messageBox("1 < 2", "Fail", 1, ""); + } + + if (two > one) { + messageBox("2 > 1", "Success", 0, ""); + } else { + messageBox("2 > 1", "Fail", 1, ""); + } + + if (sum == sumFloat) { + messageBox("[int] 4 = [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("[int] 4 = [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + if (sum <= sumFloat) { + messageBox("[int] 4 <= [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("[int] 4 <= [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + if (sum >= sumFloat) { + messageBox("[int] 4 >= [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("[int] 4 >= [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + if (!(sum < sumFloat)) { + messageBox("! [int] 4 < [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("! [int] 4 < [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + if (!(sum > sumFloat)) { + messageBox("! [int] 4 > [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("! [int] 4 > [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + Int tempOne = 1; + if (tempOne++ == one) { + messageBox("1++ = 1", "Success", 0, ""); + } else { + messageBox("1++ = 1", "Fail", 1, ""); + } + + if (tempOne == two) { + messageBox("1++ (after incremeent) = 2", "Success", 0, ""); + } else { + messageBox("1++ (after incremeent) = 2", "Fail", 1, ""); + } + + tempOne = 1; + + Int tempTwo = 2; + if (tempTwo-- == two) { + messageBox("2-- = 2", "Success", 0, ""); + } else { + messageBox("2-- = 2", "Fail", 1, ""); + } + + if (tempTwo-- == one) { + messageBox("2-- (after decrement) = 1", "Success", 0, ""); + } else { + messageBox("2-- (after decrement) = 1", "Fail", 1, ""); + } + + tempTwo = 2; + + if (++tempOne == 2) { + messageBox("++1 = 2", "Success", 0, ""); + } else { + messageBox("++1 = 2", "Fail", 1, ""); + } + + tempOne = 1; + + // Fails to compile with: "Expression: cb != NULL" + // ???? + // if (--tempOne == 0) { + // messageBox("++1 = 2", "Success", 0, ""); + // } else { + // messageBox("++1 = 2", "Fail", 1, ""); + // } + + Boolean f = false; + if (!f) { + messageBox("!f", "Success", 0, ""); + } else { + messageBox("!f", "Fail", 1, ""); + } + + if (!0) { + messageBox("!0", "Success", 0, ""); + } else { + messageBox("!0", "Fail", 1, ""); + } + + if (!1 == false) { + messageBox("!1 == false", "Success", 0, ""); + } else { + messageBox("!1 == false", "Fail", 1, ""); + } + + if (1 == true) { + messageBox("1 == true", "Success", 0, ""); + } else { + messageBox("1 == true", "Fail", 1, ""); + } + + if (0 == false) { + messageBox("0 == false", "Success", 0, ""); + } else { + messageBox("0 == false", "Fail", 1, ""); + } + + if (true && true) { + messageBox("true && true", "Success", 0, ""); + } else { + messageBox("true && true", "Fail", 1, ""); + } + + if (!(true && false)) { + messageBox("!(true && false)", "Success", 0, ""); + } else { + messageBox("!(true && false)", "Fail", 1, ""); + } + + if (!(false && false)) { + messageBox("!(false && false)", "Success", 0, ""); + } else { + messageBox("!(false && false)", "Fail", 1, ""); + } + + if (true || true) { + messageBox("true || true", "Success", 0, ""); + } else { + messageBox("true || true", "Fail", 1, ""); + } + + if (true || false) { + messageBox("true || false", "Success", 0, ""); + } else { + messageBox("true || false", "Fail", 1, ""); + } + + if (false || true) { + messageBox("false || true", "Success", 0, ""); + } else { + messageBox("false || true", "Fail", 1, ""); + } + + if (!(false || false)) { + messageBox("!(false || false)", "Success", 0, ""); + } else { + messageBox("!(false || false)", "Fail", 1, ""); + } +} diff --git a/experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.1.b3 (Winamp 3.0 build 488d)/basicTests.maki b/experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.1.b3 (Winamp 3.0 build 488d)/basicTests.maki new file mode 100755 index 0000000000000000000000000000000000000000..abdcedf725d7cc6dcb2ab80aae4e077529dd92a2 GIT binary patch literal 6161 zcmd6r3s6*57{~8LQCSvI%LkHp&_o`x?%v%6C0G{_1y)g_(U4F#Sd58>E{mGtgM8$S zZt9?-=_EC&Xl0D$3k<1<(NVH-(y5VZOw%6Dm`bUX+WF4i^>fv|hjFHv?hJRo@0|bn zo$tKQW!(5KUHc1y5K8~%q}ejx2*^xde_`i-$#~;(e&C;HJE{(*Rb8tuxVqQ0d0}(F zuK~+1r`L_>>VLZY=07!#CgI(?HEE5`j)rsn`kD8~`RtpR{Enq@Z+2dJmm4j%n3}q)+84}kZ`gM;W82@CExQ|Qoj&T=xTEpglb2sxxhm&WNX&s8b?*5^ zgDtxPo&B;m1SM`ce<35L<%*@cb^eiUE5qx4-q@I8C+icdUTT-OMVB3n_ z&*z-5jFs*z%8aeZIBI@9N zCLcN{L{SiW3Z*4kdG^BDjtQmKd|N)Gsf1!%S($Z~Eva<=SeK6eutyZ3r27#C@Gu1} zP=MDJ4EA($8;|ik%kh*nMArlK){|

~?Xb%0F`68dsht6Y4|tqj|pfNuGIfYi7Eb zvez_57JDk8224QAj`fHr&P{eQh^8Y@KZCrBiUNF;$6AlU9gR(W0?UEw{b1G%tD$5{)DdQvM;kTgt9 z-&C(L^kNb{iDm#@AL^`VOsL9a2o1sWq9IZ$OJ(Njgt0P6ZPS4UL|L?6WR zW5`IBFAZe*dg=m@YJyq5kqna)22ppAV5DVT2_(F*cy>`?o`d9B%N&Izvm!!R2|Wp8 zC8WVFw}QEPLS2<0k@$F`qcs@dI8+G+Vlpvb8cO{T+HB)}#iKP0V;Te1xJx~%38$KF zf{uhH5GjJ%zSNEk10Tgx4#t_BguYqM=- z5hJKP^1eKttB3JMy@{*WP<@mTO56d(^8yb|7zn{ zW+=@|Alm1s1EWH1T|Be3EIq-M9u`J)CTjZ$q2W40J#7SR=-_H)*X&YOR1jSv+S(*$ zYYC($Q(G=VJ#7S@P&A!B%jnV);lN?1CwrN-K5`1|vORh|3z_s!5Mfn{-Qfj`RfGjR z0CIf#z`TAyqXHLJ?*kf94Zgqo1(mRr0Ggsu39NixC8!Ytfe(9Wq6k4KfMNIGfl-6t z35jBFWio6;JThv;r>NW&^3%#-*wJ`k)W`!09g-yWQwGDn$OEHB21Be#tXmX18FpA6 z7&RI4D1c$7=7CXzqn9jl`WW_n9vC%jDzI3`^5z?y9Xv2<#Am3yb6_}ycwp3E zSETa#7|t#p7&Qn^W2VC3!EV6=qlSgadiO<8gP{U?mI%6vIGhF+5Ow=$Ydnq8{sKL(6R2U%m;^Z+=1OL_)LjMKWa}HDh literal 0 HcmV?d00001 diff --git a/experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.1.b3 (Winamp 3.0 full)/basicTests.m b/experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.1.b3 (Winamp 3.0 full)/basicTests.m new file mode 100755 index 00000000..ab08372f --- /dev/null +++ b/experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.1.b3 (Winamp 3.0 full)/basicTests.m @@ -0,0 +1,277 @@ +#include "lib/std.mi" + +System.onScriptLoaded() +{ + Int sum = 2 + 2; + if (sum == 4) { + messageBox("2 + 2 = 4", "Success", 0, ""); + } else { + messageBox("2 + 2 = 4", "Fail", 1, ""); + } + + Float sumFloat = 2.2 + 2.2; + if (sumFloat == 4.4) { + messageBox("2.2 + 2.2 = 4.4", "Success", 0, ""); + } else { + messageBox("2.2 + 2.2 = 4.4", "Fail", 1, ""); + } + + if (3 - 2 == 1) { + messageBox("3 - 2 = 1", "Success", 0, ""); + } else { + messageBox("3 - 2 = 1", "Fail", 1, ""); + } + + if (3 - -2 == 5) { + messageBox("3 - -2 = 5", "Success", 0, ""); + } else { + messageBox("3 - -2 = 5", "Fail", 1, ""); + } + + if (3.5 - 2 == 1.5) { + messageBox("3.5 - 2 = 1.5", "Success", 0, ""); + } else { + messageBox("3.5 - 2 = 1.5", "Fail", 1, ""); + } + + if (2 * 3 == 6) { + messageBox("2 * 3 = 6", "Success", 0, ""); + } else { + messageBox("2 * 3 = 6", "Fail", 1, ""); + } + + if (2 * 1.5 == 3) { + messageBox("2 * 1.5 = 3", "Success", 0, ""); + } else { + messageBox("2 * 1.5 = 3", "Fail", 1, ""); + } + + if (6 / 3 == 2) { + messageBox("6 / 3 = 2", "Success", 0, ""); + } else { + messageBox("6 / 3 = 2", "Fail", 1, ""); + } + + if (3 / 2 == 1.5) { + messageBox("3 / 2 = 1.5", "Success", 0, ""); + } else { + messageBox("3 / 2 = 1.5", "Fail", 1, ""); + } + + if (5 % 2 == 1) { + messageBox("5 % 2 = 1", "Success", 0, ""); + } else { + messageBox("5 % 2 = 1", "Fail", 1, ""); + } + + if (5.5 % 2 == 1) { + messageBox("5.5 % 2 = 1 (implict casting)", "Success", 0, ""); + } else { + messageBox("5.5 % 2 = 1 (implict casting)", "Fail", 1, ""); + } + + if (3 & 2 == 2) { + messageBox("3 & 2 = 2", "Success", 0, ""); + } else { + messageBox("3 & 2 = 2", "Fail", 1, ""); + } + + if (3 | 2 == 3) { + messageBox("3 | 2 = 3", "Success", 0, ""); + } else { + messageBox("3 | 2 = 3", "Fail", 1, ""); + } + + if (2 << 1 == 4) { + messageBox("2 << 1 = 4", "Success", 0, ""); + } else { + messageBox("2 << 1 = 4", "Fail", 1, ""); + } + + if (4 >> 1 == 2) { + messageBox("4 >> 1 = 2", "Success", 0, ""); + } else { + messageBox("4 >> 1 = 2", "Fail", 1, ""); + } + + if (2.5 << 1 == 4) { + messageBox("2.5 << 1 = 4 (implict casting)", "Success", 0, ""); + } else { + messageBox("2.5 << 1 = 4 (implict casting)", "Fail", 1, ""); + } + + if (4.5 >> 1 == 2) { + messageBox("4.5 >> 1 = 2 (implict casting)", "Success", 0, ""); + } else { + messageBox("4.5 >> 1 = 2 (implict casting)", "Fail", 1, ""); + } + + Int one = 1; + Int two = 2; + if (one != two) { + messageBox("1 != 2", "Success", 0, ""); + } else { + messageBox("1 != 2", "Fail", 1, ""); + } + + if (one < two) { + messageBox("1 < 2", "Success", 0, ""); + } else { + messageBox("1 < 2", "Fail", 1, ""); + } + + if (two > one) { + messageBox("2 > 1", "Success", 0, ""); + } else { + messageBox("2 > 1", "Fail", 1, ""); + } + + if (sum == sumFloat) { + messageBox("[int] 4 = [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("[int] 4 = [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + if (sum <= sumFloat) { + messageBox("[int] 4 <= [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("[int] 4 <= [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + if (sum >= sumFloat) { + messageBox("[int] 4 >= [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("[int] 4 >= [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + if (!(sum < sumFloat)) { + messageBox("! [int] 4 < [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("! [int] 4 < [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + if (!(sum > sumFloat)) { + messageBox("! [int] 4 > [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("! [int] 4 > [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + Int tempOne = 1; + if (tempOne++ == one) { + messageBox("1++ = 1", "Success", 0, ""); + } else { + messageBox("1++ = 1", "Fail", 1, ""); + } + + if (tempOne == two) { + messageBox("1++ (after incremeent) = 2", "Success", 0, ""); + } else { + messageBox("1++ (after incremeent) = 2", "Fail", 1, ""); + } + + tempOne = 1; + + Int tempTwo = 2; + if (tempTwo-- == two) { + messageBox("2-- = 2", "Success", 0, ""); + } else { + messageBox("2-- = 2", "Fail", 1, ""); + } + + if (tempTwo-- == one) { + messageBox("2-- (after decrement) = 1", "Success", 0, ""); + } else { + messageBox("2-- (after decrement) = 1", "Fail", 1, ""); + } + + tempTwo = 2; + + if (++tempOne == 2) { + messageBox("++1 = 2", "Success", 0, ""); + } else { + messageBox("++1 = 2", "Fail", 1, ""); + } + + tempOne = 1; + + // Fails to compile with: "Expression: cb != NULL" + // ???? + // if (--tempOne == 0) { + // messageBox("++1 = 2", "Success", 0, ""); + // } else { + // messageBox("++1 = 2", "Fail", 1, ""); + // } + + Boolean f = false; + if (!f) { + messageBox("!f", "Success", 0, ""); + } else { + messageBox("!f", "Fail", 1, ""); + } + + if (!0) { + messageBox("!0", "Success", 0, ""); + } else { + messageBox("!0", "Fail", 1, ""); + } + + if (!1 == false) { + messageBox("!1 == false", "Success", 0, ""); + } else { + messageBox("!1 == false", "Fail", 1, ""); + } + + if (1 == true) { + messageBox("1 == true", "Success", 0, ""); + } else { + messageBox("1 == true", "Fail", 1, ""); + } + + if (0 == false) { + messageBox("0 == false", "Success", 0, ""); + } else { + messageBox("0 == false", "Fail", 1, ""); + } + + if (true && true) { + messageBox("true && true", "Success", 0, ""); + } else { + messageBox("true && true", "Fail", 1, ""); + } + + if (!(true && false)) { + messageBox("!(true && false)", "Success", 0, ""); + } else { + messageBox("!(true && false)", "Fail", 1, ""); + } + + if (!(false && false)) { + messageBox("!(false && false)", "Success", 0, ""); + } else { + messageBox("!(false && false)", "Fail", 1, ""); + } + + if (true || true) { + messageBox("true || true", "Success", 0, ""); + } else { + messageBox("true || true", "Fail", 1, ""); + } + + if (true || false) { + messageBox("true || false", "Success", 0, ""); + } else { + messageBox("true || false", "Fail", 1, ""); + } + + if (false || true) { + messageBox("false || true", "Success", 0, ""); + } else { + messageBox("false || true", "Fail", 1, ""); + } + + if (!(false || false)) { + messageBox("!(false || false)", "Success", 0, ""); + } else { + messageBox("!(false || false)", "Fail", 1, ""); + } +} diff --git a/experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.1.b3 (Winamp 3.0 full)/basicTests.maki b/experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.1.b3 (Winamp 3.0 full)/basicTests.maki new file mode 100755 index 0000000000000000000000000000000000000000..8155ba9472df3f0cb7fdcb367c9e545e45c890e0 GIT binary patch literal 6241 zcmd6r3s6*57{~8L@qvq|`9cy8n#h8zyLTTd0xlp5ETSuohJ>=gVoV4Mi%)#uD`%9@ zP{DALntWD9<{L#VGfhdy2`AHPOj9cz^HD1K=zQny`n4+eFwQj7o#F2Ho%27x^PTs( z3?0_2c^5$t0_or6c)RsYZ)?Kx3+uN_##@&&ef~V%P_{F^?8cs~>sul#W*+kX)qBC^ zgzCP{+ng%AbHB=QKzRRQReWtpL(SRFoz2_BJhl#xdCyY2B_*S<*{#ENQ~ChEp&Oz% z7k)Q5Yr_75+cT!!uGxAgY0cl4Et_gLmUyW8hwTqv8?)fXqQ$8v{7pMjRcYsE^{{O4 zDe0WD!Z&L5`3p&=!&fckb<_5)SrkM?A4m__il7~kTh{w`s`#)Ty^u~ zD{PBL=O5S`X6~7H+Op(>c1P4@y@w5t++2S0_Qny#GrevG$HvcZsJWPVyZB6e^?{A4 znlJV~7(8yrYvcNtm`i?}Qk<~cZ)$D%h;OQ=`X;R&{cVN*Xigt*^7+Q!t-+Q(bJ8q_ z(-J2S*yCUFZd_#C?(~u#F<&0?G#_o{Gw_pMmbtff9V(q&lajw^^Yym6hNzwA7H%4q zddxCJdN9k{zbI+HdES=sVdwOn8g`GJ_0E{s50BW#tUp||sqTljvi(c1j;QQ#Z^*sY zk7E1OWxf$O){?k1<yFRm#@9}W1e-2 z*S@=d%w6ZVKDw$*GF7Qc64Is}tGij899`;Z+m#;_-r#4@R956Pn3pV6`Q=_&;W@do z-t?f^-GuU$o*p~T2F_@AvwqH@kA8|Vi(jk!CY`<0ab>;f+LhP}pTS90qxzniXBkvEBdcw6>HX7R~OFWu}x=a?u8LR%p(H#s9edy*qD&z5P= zgfuTm&z%YNq5A1O&&MS9Jh?ULPNwV~7%Yq3l~4nwpat6J_2l}h&A@nm zihJ!clb9LuiOA%hTvU4Y>{aFb;31lUt9!|H2xq3ofFF_*V;Y3GkFa$8) zKq4cVFZH6nKW(=0vEu0(dNYlIYFwqB)&x;a3qeN$B8a4>wkNg2i4@FCiO||YsHqlG zvvVD3#6Uwy&C1EMfvqu+AX}j$&)Fd2m_Er~pzcfM!H?zPTs@38>La;&4b_JT0mKzh zI4_`nPZWsc70}TFEd^aj2#l;moo>ttvSm5!`6N3xBi}yJZqIe7X})A&VktBf93ypn z1#q0=Ogj_HTAhh$LqcFcr2*9O5CXCW%D>t$mKi|vB8YYnbzoGetqW(imZe8H(*pyE zE|S`0b`T!sH(kKyvPyoa3!2_cP!HH2~du1|gL_9KT#22XC8FEKuFzjeN zFlyuhg${`pJ1c`>U*v&NBZDEQhC!Nh7+FG6{r!}UJM%>H)6OJ@W7}M16>i* zZMhHFu!mBcr9(pN#?Jw`UGS z6zlUoJU(jN`lmlF%I=zUc)?bfIB?14)q)xZRiMFDokv3rn}G?8 zsnE}G?dLI3!HQ01(<4rd=0f`!Hx&kt)2}sn)Er-j30usIyc@0MmcBWNffZ&Uh M$3zYMTUQA92f@HIlmGw# literal 0 HcmV?d00001 diff --git a/experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.13 (Winamp 5.02)/basicTests.m b/experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.13 (Winamp 5.02)/basicTests.m new file mode 100755 index 00000000..ab08372f --- /dev/null +++ b/experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.13 (Winamp 5.02)/basicTests.m @@ -0,0 +1,277 @@ +#include "lib/std.mi" + +System.onScriptLoaded() +{ + Int sum = 2 + 2; + if (sum == 4) { + messageBox("2 + 2 = 4", "Success", 0, ""); + } else { + messageBox("2 + 2 = 4", "Fail", 1, ""); + } + + Float sumFloat = 2.2 + 2.2; + if (sumFloat == 4.4) { + messageBox("2.2 + 2.2 = 4.4", "Success", 0, ""); + } else { + messageBox("2.2 + 2.2 = 4.4", "Fail", 1, ""); + } + + if (3 - 2 == 1) { + messageBox("3 - 2 = 1", "Success", 0, ""); + } else { + messageBox("3 - 2 = 1", "Fail", 1, ""); + } + + if (3 - -2 == 5) { + messageBox("3 - -2 = 5", "Success", 0, ""); + } else { + messageBox("3 - -2 = 5", "Fail", 1, ""); + } + + if (3.5 - 2 == 1.5) { + messageBox("3.5 - 2 = 1.5", "Success", 0, ""); + } else { + messageBox("3.5 - 2 = 1.5", "Fail", 1, ""); + } + + if (2 * 3 == 6) { + messageBox("2 * 3 = 6", "Success", 0, ""); + } else { + messageBox("2 * 3 = 6", "Fail", 1, ""); + } + + if (2 * 1.5 == 3) { + messageBox("2 * 1.5 = 3", "Success", 0, ""); + } else { + messageBox("2 * 1.5 = 3", "Fail", 1, ""); + } + + if (6 / 3 == 2) { + messageBox("6 / 3 = 2", "Success", 0, ""); + } else { + messageBox("6 / 3 = 2", "Fail", 1, ""); + } + + if (3 / 2 == 1.5) { + messageBox("3 / 2 = 1.5", "Success", 0, ""); + } else { + messageBox("3 / 2 = 1.5", "Fail", 1, ""); + } + + if (5 % 2 == 1) { + messageBox("5 % 2 = 1", "Success", 0, ""); + } else { + messageBox("5 % 2 = 1", "Fail", 1, ""); + } + + if (5.5 % 2 == 1) { + messageBox("5.5 % 2 = 1 (implict casting)", "Success", 0, ""); + } else { + messageBox("5.5 % 2 = 1 (implict casting)", "Fail", 1, ""); + } + + if (3 & 2 == 2) { + messageBox("3 & 2 = 2", "Success", 0, ""); + } else { + messageBox("3 & 2 = 2", "Fail", 1, ""); + } + + if (3 | 2 == 3) { + messageBox("3 | 2 = 3", "Success", 0, ""); + } else { + messageBox("3 | 2 = 3", "Fail", 1, ""); + } + + if (2 << 1 == 4) { + messageBox("2 << 1 = 4", "Success", 0, ""); + } else { + messageBox("2 << 1 = 4", "Fail", 1, ""); + } + + if (4 >> 1 == 2) { + messageBox("4 >> 1 = 2", "Success", 0, ""); + } else { + messageBox("4 >> 1 = 2", "Fail", 1, ""); + } + + if (2.5 << 1 == 4) { + messageBox("2.5 << 1 = 4 (implict casting)", "Success", 0, ""); + } else { + messageBox("2.5 << 1 = 4 (implict casting)", "Fail", 1, ""); + } + + if (4.5 >> 1 == 2) { + messageBox("4.5 >> 1 = 2 (implict casting)", "Success", 0, ""); + } else { + messageBox("4.5 >> 1 = 2 (implict casting)", "Fail", 1, ""); + } + + Int one = 1; + Int two = 2; + if (one != two) { + messageBox("1 != 2", "Success", 0, ""); + } else { + messageBox("1 != 2", "Fail", 1, ""); + } + + if (one < two) { + messageBox("1 < 2", "Success", 0, ""); + } else { + messageBox("1 < 2", "Fail", 1, ""); + } + + if (two > one) { + messageBox("2 > 1", "Success", 0, ""); + } else { + messageBox("2 > 1", "Fail", 1, ""); + } + + if (sum == sumFloat) { + messageBox("[int] 4 = [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("[int] 4 = [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + if (sum <= sumFloat) { + messageBox("[int] 4 <= [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("[int] 4 <= [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + if (sum >= sumFloat) { + messageBox("[int] 4 >= [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("[int] 4 >= [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + if (!(sum < sumFloat)) { + messageBox("! [int] 4 < [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("! [int] 4 < [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + if (!(sum > sumFloat)) { + messageBox("! [int] 4 > [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("! [int] 4 > [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + Int tempOne = 1; + if (tempOne++ == one) { + messageBox("1++ = 1", "Success", 0, ""); + } else { + messageBox("1++ = 1", "Fail", 1, ""); + } + + if (tempOne == two) { + messageBox("1++ (after incremeent) = 2", "Success", 0, ""); + } else { + messageBox("1++ (after incremeent) = 2", "Fail", 1, ""); + } + + tempOne = 1; + + Int tempTwo = 2; + if (tempTwo-- == two) { + messageBox("2-- = 2", "Success", 0, ""); + } else { + messageBox("2-- = 2", "Fail", 1, ""); + } + + if (tempTwo-- == one) { + messageBox("2-- (after decrement) = 1", "Success", 0, ""); + } else { + messageBox("2-- (after decrement) = 1", "Fail", 1, ""); + } + + tempTwo = 2; + + if (++tempOne == 2) { + messageBox("++1 = 2", "Success", 0, ""); + } else { + messageBox("++1 = 2", "Fail", 1, ""); + } + + tempOne = 1; + + // Fails to compile with: "Expression: cb != NULL" + // ???? + // if (--tempOne == 0) { + // messageBox("++1 = 2", "Success", 0, ""); + // } else { + // messageBox("++1 = 2", "Fail", 1, ""); + // } + + Boolean f = false; + if (!f) { + messageBox("!f", "Success", 0, ""); + } else { + messageBox("!f", "Fail", 1, ""); + } + + if (!0) { + messageBox("!0", "Success", 0, ""); + } else { + messageBox("!0", "Fail", 1, ""); + } + + if (!1 == false) { + messageBox("!1 == false", "Success", 0, ""); + } else { + messageBox("!1 == false", "Fail", 1, ""); + } + + if (1 == true) { + messageBox("1 == true", "Success", 0, ""); + } else { + messageBox("1 == true", "Fail", 1, ""); + } + + if (0 == false) { + messageBox("0 == false", "Success", 0, ""); + } else { + messageBox("0 == false", "Fail", 1, ""); + } + + if (true && true) { + messageBox("true && true", "Success", 0, ""); + } else { + messageBox("true && true", "Fail", 1, ""); + } + + if (!(true && false)) { + messageBox("!(true && false)", "Success", 0, ""); + } else { + messageBox("!(true && false)", "Fail", 1, ""); + } + + if (!(false && false)) { + messageBox("!(false && false)", "Success", 0, ""); + } else { + messageBox("!(false && false)", "Fail", 1, ""); + } + + if (true || true) { + messageBox("true || true", "Success", 0, ""); + } else { + messageBox("true || true", "Fail", 1, ""); + } + + if (true || false) { + messageBox("true || false", "Success", 0, ""); + } else { + messageBox("true || false", "Fail", 1, ""); + } + + if (false || true) { + messageBox("false || true", "Success", 0, ""); + } else { + messageBox("false || true", "Fail", 1, ""); + } + + if (!(false || false)) { + messageBox("!(false || false)", "Success", 0, ""); + } else { + messageBox("!(false || false)", "Fail", 1, ""); + } +} diff --git a/experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.13 (Winamp 5.02)/basicTests.maki b/experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.1.13 (Winamp 5.02)/basicTests.maki new file mode 100755 index 0000000000000000000000000000000000000000..6ee8793ca3f2fd398cb1f798bfc1b8aa8cba7cbc GIT binary patch literal 6932 zcmd5=3s6+o8NL_UDC;6C;z%K4C#28H^ z51SdK#G(PKQ%R>j+gh5&7{#Dzt<@?`CQ~v^we8qgO;aCSNP|DW@n?>o=`{)eLCG12!6f{+4#D@xtY@5MUHHh#Eszhu37u_5lW_lLUs!ZMJ?^&E%}FfUmAAL`PxBj>9|>Grwenj3Yu78b{pX@%&%o}EC|zdOk?igHFI-;t zQq4O_wl`{YwddB%aO{ffm{PqdA@@~Z=8jDj({i8xTytsZ$IG-^&V5*6JATR0J-G7l zwsk3e|JXcG=qDR?xv%}u;aa()Y z!NeyAx)=VT@5zLUEsOuyV>#J0E0+9v_rIK}jziDZI*!+tub6WvspCf_IVA_{I%eem z_L#FV>(zCX z)vi1>c%{8EuT$fC)1Q((oS0$U+S4>_U;m;m(fiRR&5Er~AGIdmnRFHJxpt0846Xxzb}rcH7JsixY&moN zzRg3nPd+N_iJM>1yJ+?Y&p961x~g$PUgwuj zm_PYlLS;{JPkr4lml!teZM!!;T|02F{IIU-!ugY1J{tpjP!t7WqOjZ@T-53fdYavf z-Tr{b=fz^J(CiKbT+7{gzLn@t5PaUsdcUV7SnhK*xEsns&EZ9Vq8Jr6;VlZR7kx*a zKdhhG8P44&56;RQdOKIJFZZLrHFEGOzI z=)3DQw`tfqxsP=rPT4y;e>4T9tzseen|iWdUr7C%vas!BPV%*!a^1^cTZc2K{8*1w z_}_c{>ikHy*UEmtF|&35zn&@7*U7?Tk9z_nKtl!byH~V&{O$l53)M+NmB;I9ZXs5q zNg^qMCp=!#CPy4%Hku9N0HYBK{eGW6226}Of)FD}B#lU99?6IUcdSs^T3-*5DIT0? zp~&TFx(}>4K{8StJOOFUm_nOcNIGq5o(is3KsOx$)n-3SAz<{h-b!Z51rLHdU9dviPytEtG`BQ)>Vu@- z6$pB~%MB0F78a6BTSzlQ?rQ2CnOMg0ttlS6&U0Dck-+j<*uw?Z1l zWB?}I>TZk?F!u;%qMt{khr!l>olPWMPYuX}ni))kP~-6iYe@!lrKYjT=R(__{E5ex*T9qz0MLV60$HOT(3& z1I{$+q_`S`Za?vO>;3L#x7!;uK)sYj!BToUI*)*pAfOWhH@GQS#+tJ!HZ2VoRLTJ- zO3*iANQbw{PAm0LH;mwIe=ay=B7VAP1)d?n6eSm6xYo%g#w)Ee9w&|F z03y}_4xWOD2bmU#c)CT5Un0f=`&6ut61DKuQ-B_`3_+i;eq>~1BE?Z()Iq5@KK!r) zF)fLOl5z2vNZ%oZY$ApU5km)+h=$xEY7(BtJ8;-T5hKV~aN;B^n;3qe7%jOMN>s!! z0`Z8kIB_!S;K*|61gHpLG~*Fqaf(2Bu87wT6$M;e9t9RBCP1^$5T>aMV8rDSU~%%o z<3#0&-%=OA_{}50;$#8rdmf!Gl_|n60*?TTqur*|`BY0q0KYIi0xV8h<$N*18W2ta z7Du-Z?R!C_eX8daU~%FD(2P$2&oR#wu{dRlN+PYnL!1IEP7x@jrphAYSDt4CERJ@Y z&i=Q>2$2u-1|9(xM_H*rb)+f6M1)6x#fdajW8jTA0?cf91X!Gy3eEUNfN2qr0E-i6 zhXvrXkd8LSZm?-N7Q~GHJ;E%DN0P-U)Vk5BF=^wWW^wWeu0_8ht)RaO;~Kpq_yC+pw|QlZ8?oQImlF+-RO6yZaQ_FQ@hR5UTS=h0+w zqRfqFONAS+3Ow8_j&g^`fJ>4UDO}^7gGYzOG4nPLC}^e*+W>8qjfR&R9yJz6$yHeK zip0ap;^@vTqueU%VCUp!ag>`rRH$<~saYKDaHL-2osefnSe(-9M@NrC`JB`&PNv2S z*rO^7S-{E7;*=Rtl!<~+S-aq^5{Hl;$1H+>#z Y7N<> 1 == 2) { + messageBox("4 >> 1 = 2", "Success", 0, ""); + } else { + messageBox("4 >> 1 = 2", "Fail", 1, ""); + } + + if (2.5 << 1 == 4) { + messageBox("2.5 << 1 = 4 (implict casting)", "Success", 0, ""); + } else { + messageBox("2.5 << 1 = 4 (implict casting)", "Fail", 1, ""); + } + + if (4.5 >> 1 == 2) { + messageBox("4.5 >> 1 = 2 (implict casting)", "Success", 0, ""); + } else { + messageBox("4.5 >> 1 = 2 (implict casting)", "Fail", 1, ""); + } + + Int one = 1; + Int two = 2; + if (one != two) { + messageBox("1 != 2", "Success", 0, ""); + } else { + messageBox("1 != 2", "Fail", 1, ""); + } + + if (one < two) { + messageBox("1 < 2", "Success", 0, ""); + } else { + messageBox("1 < 2", "Fail", 1, ""); + } + + if (two > one) { + messageBox("2 > 1", "Success", 0, ""); + } else { + messageBox("2 > 1", "Fail", 1, ""); + } + + if (sum == sumFloat) { + messageBox("[int] 4 = [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("[int] 4 = [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + if (sum <= sumFloat) { + messageBox("[int] 4 <= [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("[int] 4 <= [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + if (sum >= sumFloat) { + messageBox("[int] 4 >= [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("[int] 4 >= [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + if (!(sum < sumFloat)) { + messageBox("! [int] 4 < [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("! [int] 4 < [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + if (!(sum > sumFloat)) { + messageBox("! [int] 4 > [float] 4.4 (autocasting types)", "Success", 0, ""); + } else { + messageBox("! [int] 4 > [float] 4.4 (autocasting types)", "Fail", 1, ""); + } + + Int tempOne = 1; + if (tempOne++ == one) { + messageBox("1++ = 1", "Success", 0, ""); + } else { + messageBox("1++ = 1", "Fail", 1, ""); + } + + if (tempOne == two) { + messageBox("1++ (after incremeent) = 2", "Success", 0, ""); + } else { + messageBox("1++ (after incremeent) = 2", "Fail", 1, ""); + } + + tempOne = 1; + + Int tempTwo = 2; + if (tempTwo-- == two) { + messageBox("2-- = 2", "Success", 0, ""); + } else { + messageBox("2-- = 2", "Fail", 1, ""); + } + + if (tempTwo-- == one) { + messageBox("2-- (after decrement) = 1", "Success", 0, ""); + } else { + messageBox("2-- (after decrement) = 1", "Fail", 1, ""); + } + + tempTwo = 2; + + if (++tempOne == 2) { + messageBox("++1 = 2", "Success", 0, ""); + } else { + messageBox("++1 = 2", "Fail", 1, ""); + } + + tempOne = 1; + + // Fails to compile with: "Expression: cb != NULL" + // ???? + // if (--tempOne == 0) { + // messageBox("++1 = 2", "Success", 0, ""); + // } else { + // messageBox("++1 = 2", "Fail", 1, ""); + // } + + Boolean f = false; + if (!f) { + messageBox("!f", "Success", 0, ""); + } else { + messageBox("!f", "Fail", 1, ""); + } + + if (!0) { + messageBox("!0", "Success", 0, ""); + } else { + messageBox("!0", "Fail", 1, ""); + } + + if (!1 == false) { + messageBox("!1 == false", "Success", 0, ""); + } else { + messageBox("!1 == false", "Fail", 1, ""); + } + + if (1 == true) { + messageBox("1 == true", "Success", 0, ""); + } else { + messageBox("1 == true", "Fail", 1, ""); + } + + if (0 == false) { + messageBox("0 == false", "Success", 0, ""); + } else { + messageBox("0 == false", "Fail", 1, ""); + } + + if (true && true) { + messageBox("true && true", "Success", 0, ""); + } else { + messageBox("true && true", "Fail", 1, ""); + } + + if (!(true && false)) { + messageBox("!(true && false)", "Success", 0, ""); + } else { + messageBox("!(true && false)", "Fail", 1, ""); + } + + if (!(false && false)) { + messageBox("!(false && false)", "Success", 0, ""); + } else { + messageBox("!(false && false)", "Fail", 1, ""); + } + + if (true || true) { + messageBox("true || true", "Success", 0, ""); + } else { + messageBox("true || true", "Fail", 1, ""); + } + + if (true || false) { + messageBox("true || false", "Success", 0, ""); + } else { + messageBox("true || false", "Fail", 1, ""); + } + + if (false || true) { + messageBox("false || true", "Success", 0, ""); + } else { + messageBox("false || true", "Fail", 1, ""); + } + + if (!(false || false)) { + messageBox("!(false || false)", "Success", 0, ""); + } else { + messageBox("!(false || false)", "Fail", 1, ""); + } +} diff --git a/experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.2.0 (Winamp 5.66)/basicTests.maki b/experiments/modern/src/maki-interpreter/reference/maki_compiler/v1.2.0 (Winamp 5.66)/basicTests.maki new file mode 100755 index 0000000000000000000000000000000000000000..9f9a679f64460913e3371d5acfa844fadd992a4f GIT binary patch literal 7127 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 RwyH81Rt6-099vXw{|4O3x3>TQ literal 0 HcmV?d00001