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:
37
samples/Terra/forlist2.t
Normal file
37
samples/Terra/forlist2.t
Normal file
@@ -0,0 +1,37 @@
|
||||
|
||||
|
||||
struct Array {
|
||||
data : int[3];
|
||||
}
|
||||
Array.metamethods.__for = function(syms,iter,body)
|
||||
local pe = symbol()
|
||||
local e = `@pe
|
||||
return {e}, quote
|
||||
var it = &iter
|
||||
for i = 0,3 do
|
||||
var [pe] = &it.data[i]
|
||||
body
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
terra foo()
|
||||
var a = Array{ array(1,2,3) }
|
||||
for i in a do
|
||||
i = i + 1
|
||||
end
|
||||
return a.data[0] + a.data[1] + a.data[2]
|
||||
end
|
||||
|
||||
terra foo2()
|
||||
var a = Array{ array(1,2,3) }
|
||||
var s = 0
|
||||
for i : double in a do
|
||||
s = s + i
|
||||
end
|
||||
return s
|
||||
end
|
||||
|
||||
assert(foo() == 9)
|
||||
|
||||
assert(foo2() == 6)
|
||||
Reference in New Issue
Block a user