aboutsummaryrefslogtreecommitdiff
path: root/spec/outputs/teal_lang.tl
diff options
context:
space:
mode:
Diffstat (limited to 'spec/outputs/teal_lang.tl')
-rw-r--r--spec/outputs/teal_lang.tl60
1 files changed, 60 insertions, 0 deletions
diff --git a/spec/outputs/teal_lang.tl b/spec/outputs/teal_lang.tl
new file mode 100644
index 0000000..0dc25a1
--- /dev/null
+++ b/spec/outputs/teal_lang.tl
@@ -0,0 +1,60 @@
1local a:{string:number} = {
2 value = 123
3}
4local b:number = a.value
5local function add(a:number, b:number):number
6
7 return a + b
8
9end
10local s = add(a.value, b)
11print(s)
12local record Point
13 x: number
14 y: number
15end
16function Point.new(x:number, y:number):Point
17local point:Point = setmetatable({ }, {
18 __index = Point
19})
20 point.x = x or 0
21 point.y = y or 0
22 return point
23
24end
25function Point:move(dx:number, dy:number)
26 self.x = self.x + dx
27 self.y = self.y + dy
28
29end
30local p:Point = Point.new(100, 100)
31p:move(50, 50)
32local function filter(tab:{string}, handler:function(item:string):boolean):{string}
33
34 local _accum_0 = { }
35 local _len_0 = 1
36 for _index_0 = 1, #tab do
37 local item = tab[_index_0]
38 if handler(item) then
39 _accum_0[_len_0] = item
40 _len_0 = _len_0 + 1
41 end
42 end
43 return _accum_0
44
45end
46local function cond(item:string):boolean
47
48 return item ~= "a"
49
50end
51local res = filter({
52 "a",
53 "b",
54 "c",
55 "a"
56}, cond)
57for _index_0 = 1, #res do
58 local s = res[_index_0]
59 print(s)
60end