samples: add Terra samples

source: https://github.com/zdevito/terra/tree/master/tests
This commit is contained in:
Bayu Aldi Yansyah
2016-01-28 11:22:27 +07:00
parent e32a837fb2
commit 9b8b39f444
370 changed files with 11921 additions and 0 deletions

37
samples/Terra/forlist2.t Normal file
View 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)