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

View File

@@ -0,0 +1,40 @@
struct A {
a : int
}
count = global(int,0)
terra twoAs(a : int)
return A {a}, A { a }
end
function A.metamethods.__cast(fromt,tot,exp)
if tot == A and fromt == int then
return `twoAs(exp)._0
end
error("what")
end
terra twoInts()
count = count + 1
return count,2
end
terra takesAnA(a : A)
return a.a
end
dotwice = macro(function(exp)
return {exp,exp}
end)
terra doit()
return dotwice(takesAnA((twoInts()._0)))
end
doit:printpretty()
local test = require("test")
test.meq({1,2},doit())