mirror of
https://github.com/KevinMidboe/linguist.git
synced 2026-01-15 22:05:46 +00:00
samples: add Terra samples
source: https://github.com/zdevito/terra/tree/master/tests
This commit is contained in:
33
samples/Terra/interface.t
Normal file
33
samples/Terra/interface.t
Normal file
@@ -0,0 +1,33 @@
|
||||
|
||||
IO = terralib.includec("stdio.h")
|
||||
local Class = require("lib/javalike")
|
||||
|
||||
struct A {
|
||||
a : int
|
||||
}
|
||||
|
||||
terra A:foo(a : int) : int
|
||||
return self.a + a
|
||||
end
|
||||
|
||||
local m = A.methods.foo:getdefinitions()[1]
|
||||
|
||||
HasFoo = Class.interface({ foo = int -> int })
|
||||
|
||||
Class.implements(A,HasFoo)
|
||||
|
||||
terra hasfoo(a : &HasFoo)
|
||||
return a:foo(3)
|
||||
end
|
||||
|
||||
terra testit()
|
||||
var a = A.alloc()
|
||||
a.a = 4
|
||||
return hasfoo(a) + a:foo(5)
|
||||
end
|
||||
|
||||
print(m:getpointer())
|
||||
testit:compile()
|
||||
print("DONE")
|
||||
|
||||
assert(testit() == 16)
|
||||
Reference in New Issue
Block a user