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:
35
samples/Terra/defergoto.t
Normal file
35
samples/Terra/defergoto.t
Normal file
@@ -0,0 +1,35 @@
|
||||
C = terralib.includec("stdio.h")
|
||||
cur = global(int)
|
||||
|
||||
terra d(a : int)
|
||||
if cur ~= a then
|
||||
C.printf("found %d while expecting %d\n",a,cur)
|
||||
error(cur)
|
||||
end
|
||||
cur = cur + 1
|
||||
C.printf("d%d\n",a)
|
||||
end
|
||||
d:setinlined(false)
|
||||
|
||||
terra foo()
|
||||
d(0)
|
||||
defer d(14)
|
||||
var a = 0
|
||||
::begin::
|
||||
defer d(terralib.select(a == 10,13,a + 1))
|
||||
if a >= 10 then
|
||||
defer d(11)
|
||||
goto theend
|
||||
end
|
||||
a = a + 1
|
||||
goto begin
|
||||
::theend::
|
||||
defer d(12)
|
||||
return a
|
||||
end
|
||||
|
||||
foo:printpretty()
|
||||
cur:set(0)
|
||||
|
||||
test = require("test")
|
||||
test.eq(foo(),10)
|
||||
Reference in New Issue
Block a user