133 lines
2.2 KiB
Plaintext
133 lines
2.2 KiB
Plaintext
@pragma implicit on
|
|
@pragma pedantic on
|
|
@pragma xcall on
|
|
@pragma entry main
|
|
|
|
@include "tap.inc";
|
|
|
|
@global g;
|
|
@global G = func(a, b) {
|
|
return a * b
|
|
}
|
|
|
|
@global H = @[ \
|
|
func(a, b) { return a - b }, \
|
|
func(a, b) { return a + b } \
|
|
]
|
|
|
|
func x(a1, a2, a3, a, b) {
|
|
@local y;
|
|
|
|
y.a = func(a, b) { return a * b }
|
|
y.b = func(a) { return a * 4 }
|
|
|
|
return y
|
|
}
|
|
|
|
func y(f, v) {
|
|
return f(v)
|
|
}
|
|
|
|
func xx(a1, a2, a3, a) {
|
|
@local y, m, d, q1, q2, q3, q4, q5, q6,q7, q8, q9;
|
|
|
|
m = 10
|
|
d = 20
|
|
|
|
{
|
|
@local q4, q5;
|
|
q4 = 10;
|
|
q5 = 20;
|
|
|
|
q1 = 1
|
|
q2 = 1
|
|
q3 = 1
|
|
q6 = 1
|
|
q7 = 1
|
|
q8 = 1
|
|
q9 = 1
|
|
}
|
|
q4 = 2
|
|
q5 = 2
|
|
|
|
|
|
y.a = func(a, b) {
|
|
@local t = 99;
|
|
@local t2;
|
|
@local t3 = 88;
|
|
@local t4 = 88;
|
|
|
|
t = 88;
|
|
t2 = 999;
|
|
{ @local q1, q2; q2 = 44;
|
|
q1 = func(t, c) {
|
|
return t + c + t * c
|
|
};
|
|
q1(777, 8888)
|
|
}
|
|
|
|
return a * b + t
|
|
}
|
|
y.b = func(a) {
|
|
@local x , y, a1
|
|
|
|
{
|
|
@local x = 1 , y = 2, a1 = 3;
|
|
@local a2 = 4 , a3 = 5, a4 = 6;
|
|
@local a5 = 7, a6 = 8, a7 = 9, a8 = 10, a9 = 11, a10 = 12,a11 = 13, a12
|
|
|
|
a12=9999
|
|
}
|
|
x = 10
|
|
y = 20
|
|
a1 = 40
|
|
return a * 4
|
|
};
|
|
|
|
{
|
|
@local q4, q5 = 887;
|
|
q4 = 10;
|
|
q5 = 20;
|
|
}
|
|
|
|
return y
|
|
}
|
|
|
|
|
|
func main() {
|
|
@local l, m, t;
|
|
|
|
g = func(x, y) { return x + y; };
|
|
l = func(x) { return x * 2; };
|
|
n = func(z) { return z - 1; };
|
|
|
|
tap_ensure(g(2, 3), 5, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(l(4), 8, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(n(10), 9, @SCRIPTNAME, @SCRIPTLINE);
|
|
|
|
m = @{};
|
|
m.f = func(a, b) { return a * b; };
|
|
tap_ensure(m.f(3, 4), 12, @SCRIPTNAME, @SCRIPTLINE);
|
|
|
|
t = x(10, 20)
|
|
tap_ensure(t.a(90, 10), 900, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(t.b(90), 360, @SCRIPTNAME, @SCRIPTLINE);
|
|
|
|
tap_ensure(y(func(a) { @local t = a * a; return t + t }, 30), 1800, @SCRIPTNAME, @SCRIPTLINE);
|
|
|
|
m = @[ \
|
|
func(a, b) { return a - b }, \
|
|
func(a, b) { return a + b } \
|
|
]
|
|
tap_ensure(m[1](10,20), -10, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(m[2](10,20), 30, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(H[1](5,20), -15, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(H[2](5,20), 25, @SCRIPTNAME, @SCRIPTLINE);
|
|
|
|
m = xx(10, 20)
|
|
tap_ensure(m.a(90, 10), 988, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure(m.b(90), 360, @SCRIPTNAME, @SCRIPTLINE);
|
|
|
|
tap_end();
|
|
}
|