mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
samples: add Terra samples
source: https://github.com/zdevito/terra/tree/master/tests
This commit is contained in:
67
samples/Terra/torturechain.t
Normal file
67
samples/Terra/torturechain.t
Normal file
@@ -0,0 +1,67 @@
|
||||
|
||||
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)
|
||||
Reference in New Issue
Block a user