mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +00:00
68 lines
1021 B
Perl
68 lines
1021 B
Perl
|
|
terra foo()
|
|
return 8.0,9
|
|
end
|
|
|
|
local torturechain = quote
|
|
var a = 3.0
|
|
in
|
|
[quote
|
|
var b = 4
|
|
in
|
|
[quote
|
|
var c = 5.0
|
|
in
|
|
a,b,c, [quote
|
|
var d = 6
|
|
in
|
|
[quote
|
|
var e = 7.0
|
|
in
|
|
d,e,foo()
|
|
end]
|
|
end]
|
|
end]
|
|
end]
|
|
end
|
|
|
|
terra bindit()
|
|
var a,b,c,r1 = torturechain
|
|
var d,e,r2 = r1
|
|
var f,g = r2
|
|
return a + b + c + d + e + f + g
|
|
end
|
|
|
|
local sum = 3+4+5+6+7+8+9
|
|
assert(sum == bindit())
|
|
|
|
terra foo(z : int, a : int, b : int, c : int, d : int, e : int, f : int, g : int)
|
|
return z + a + b + c + d + e + f + g
|
|
end
|
|
|
|
|
|
terra overloadit(a : int, b : int, c : int, d : int, e : int, f : int)
|
|
return 0
|
|
end
|
|
|
|
terra overloadit(a : double, b : int, c : int, d : int, e : int, f : int)
|
|
return 1
|
|
end
|
|
|
|
|
|
terra callit()
|
|
var a,b,c,r1 = torturechain
|
|
var d,e,r2 = r1
|
|
var f,g = r2
|
|
return foo(0,a,b,c,d,e,f,g)
|
|
end
|
|
|
|
terra callol()
|
|
var a,b,c,r1 = torturechain
|
|
var d,e,r2 = r1
|
|
var f,g = r2
|
|
return overloadit(a,b,c,e,f,g)
|
|
end
|
|
|
|
assert(callit() == sum)
|
|
assert(callol() == 1)
|