diff options
Diffstat (limited to 'spec/inputs/teal-lang.mp')
-rw-r--r-- | spec/inputs/teal-lang.mp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/spec/inputs/teal-lang.mp b/spec/inputs/teal-lang.mp new file mode 100644 index 0000000..3c9c79b --- /dev/null +++ b/spec/inputs/teal-lang.mp | |||
@@ -0,0 +1,32 @@ | |||
1 | $ -> | ||
2 | package.moonpath = "?.mp;./spec/inputs/?.mp" | ||
3 | |||
4 | import "macro-teal" as {$} | ||
5 | |||
6 | $var a, "{string:number}", {value:123} | ||
7 | $var b, "number", a.value | ||
8 | |||
9 | $def add, "(a:number,b:number):number", (a, b)-> a + b | ||
10 | |||
11 | s = add(a.value, b) | ||
12 | print(s) | ||
13 | |||
14 | $record Point, [[ | ||
15 | x: number | ||
16 | y: number | ||
17 | ]] | ||
18 | |||
19 | $field Point, '.', new, "(x: number, y: number):Point", (x, y)-> | ||
20 | $var point, "Point", setmetatable {}, __index: Point | ||
21 | point.x = x or 0 | ||
22 | point.y = y or 0 | ||
23 | point | ||
24 | |||
25 | $field Point, ":", move, "(dx: number, dy: number)", (dx, dy)=> | ||
26 | @x += dx | ||
27 | @y += dy | ||
28 | |||
29 | $var p, "Point", Point.new 100, 100 | ||
30 | |||
31 | p\move 50, 50 | ||
32 | |||