mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +00:00
45 lines
786 B
Raku
45 lines
786 B
Raku
C = terralib.includec("stdio.h")
|
|
--the zero line
|
|
struct A { a : int }
|
|
|
|
terra A:foo1()
|
|
self.a = self.a + 1
|
|
return self.a
|
|
end
|
|
|
|
terra A.methods.foo2(self : &A)
|
|
self.a = self.a + 1
|
|
return self.a
|
|
end
|
|
|
|
terra A.methods.foo3(self : A)
|
|
self.a = self.a + 1
|
|
return self.a
|
|
end
|
|
|
|
terra bar()
|
|
var a = A { 0 }
|
|
var ptra = &a
|
|
|
|
var v0 = a.a
|
|
var v1 = a:foo1()
|
|
var v2 = a.a
|
|
var v3 = a:foo2()
|
|
var v4 = a.a
|
|
var v5 = a:foo3()
|
|
var v6 = a.a
|
|
|
|
ptra.a = 0
|
|
var p0 = ptra.a
|
|
var p1 = ptra:foo1()
|
|
var p2 = ptra.a
|
|
var p3 = ptra:foo2()
|
|
var p4 = ptra.a
|
|
var p5 = ptra:foo3()
|
|
var p6 = ptra.a
|
|
|
|
return v0,v1,v2,v3,v4,v5,v6,p0,p1,p2,p3,p4,p5,p6
|
|
end
|
|
|
|
test = require("test")
|
|
test.meq({0,1,1,2,2,3,2,0,1,1,2,2,3,2},bar()) |