diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/compilation.bad | 187 | ||||
-rw-r--r-- | tests/logic-shortcircuit.bad | 16 | ||||
-rw-r--r-- | tests/nested.bad | 18 | ||||
-rw-r--r-- | tests/pointers.bad | 36 | ||||
-rw-r--r-- | tests/recursion.bad | 19 |
5 files changed, 186 insertions, 90 deletions
diff --git a/tests/compilation.bad b/tests/compilation.bad index ea467d2..49a5492 100644 --- a/tests/compilation.bad +++ b/tests/compilation.bad | |||
@@ -1,93 +1,100 @@ | |||
1 | fun adder(a: int): int { | 1 | let a: Int = 32 |
2 | ; a + 1 | 2 | let ptr = @a |
3 | 4 | 3 | println("a " a) |
4 | } | 4 | println("ptr " ptr) |
5 | adder(2) | 5 | |
6 | ; let a = 1 | 6 | set ptr@ = 12 |
7 | ; let b = 8 | 7 | println("a " a) |
8 | 8 | println("ptr " ptr) | |
9 | ; a + b | 9 | |
10 | ; 1 + 2 | 10 | let ptr2 = @ptr |
11 | ; fun greet(name: str): nil { | 11 | set ptr2@@ = 6 |
12 | ; fun greet(name: str): nil { | 12 | println("a " a) |
13 | ; println("hello ") | 13 | println("ptr " ptr) |
14 | ; } | 14 | |
15 | 15 | ; let a: Int = 32 | |
16 | ; greet("alex") | 16 | ; let b: Int = 64 |
17 | ; greet("ding") | 17 | ; let ptr = @a |
18 | ; greet() | 18 | ; println("a " a) |
19 | ; if true { | 19 | ; println("b " b) |
20 | ; 1 | 20 | ; println("ptr " ptr) |
21 | ; nil | 21 | |
22 | ; } | 22 | ; println("ptr@ " ptr@) |
23 | ; let a = 1 | 23 | |
24 | ; let p = @a | 24 | ; { ; FIXME: This doesn't work yet |
25 | ; let arr: int[8] | 25 | ; set ptr@ = 12 |
26 | ; set p[0] = 2 | 26 | ; println(a) |
27 | 27 | ; println(b) | |
28 | ; let b = p[0] | 28 | ; println(ptr) |
29 | ; println("a: " a) | ||
30 | ; println("b: " b) | ||
31 | ; let i = 0 | ||
32 | ; while i < 8 { | ||
33 | ; set arr[i] = i | ||
34 | ; set i = i + 1 | ||
35 | ; } | ||
36 | ; println("arr[0]: " arr[0]) | ||
37 | ; println("arr[1]: " arr[1]) | ||
38 | |||
39 | ; let arr: int[8] | ||
40 | ; set arr[1] = 2 | ||
41 | |||
42 | ; let idx = 3 | ||
43 | ; set arr[idx] = 3 | ||
44 | |||
45 | ; println("arr[0]: " arr[0]) | ||
46 | ; println("arr[1]: " arr[1]) | ||
47 | ; println("arr[2]: " arr[2]) | ||
48 | ; println("arr[3]: " arr[3]) | ||
49 | |||
50 | ; arr[0] + arr[1] + arr[2] + arr[3] | ||
51 | |||
52 | ; set a = 2 | ||
53 | |||
54 | ; let a = cond { | ||
55 | ; 1 == 1 = 42 | ||
56 | ; 1 == 3 = 55 | ||
57 | ; 1 == 1 = 66 | ||
58 | ; else = 10 | ||
59 | ; } | 29 | ; } |
60 | 30 | ||
31 | ; set ptr += 8 | ||
32 | ; println(ptr@) | ||
33 | |||
34 | ; let a: Int = 32 | ||
35 | ; let b: @Int = @a | ||
36 | ; let c = @a | ||
37 | ; let d = @c | ||
38 | ; let e = a + b@ | ||
39 | ; let f = d@ | ||
40 | |||
41 | ; println("a -> " a) | ||
42 | ; println("b -> " b) | ||
43 | ; println("c -> " c) | ||
44 | ; println("d -> " d) | ||
45 | ; println("e -> " e) | ||
46 | ; println("f -> " f) | ||
47 | ; println("b@ -> " b@) | ||
48 | ; println("d@ -> " d@) | ||
49 | ; println("d@@ -> " d@@) | ||
50 | ; println("a == b@ and a == d@@ -> " a == b@ and a == d@@) | ||
51 | ; println("b == c and c == d@ -> " b == c and c == d@) | ||
52 | |||
53 | ; println("b[0] " b[0]) | ||
54 | ; println("c[0] " c[0]) | ||
55 | ; println("d[0] " d[0]) | ||
56 | |||
57 | ; let c = @a | ||
58 | ; let d = @c | ||
59 | ; let c: Int = a@ + 1 | ||
60 | ; let c: @@Int = @b | ||
61 | ; let d: @@@Int = @c | ||
62 | ; let static_array: [24]Int | ||
63 | ; let fun_ptr: (Int Int : Int) | ||
64 | |||
65 | ; let a: U16 = 0x0afafafafafafafafafa | ||
66 | ; println(a) | ||
67 | ; let a: U32 = -2 | ||
68 | ; ; let a: U32 = -2 + -1 | ||
69 | ; let b: @U32 = @a | ||
70 | ; ; let a = "hello" | ||
71 | ; ; let b = a | ||
72 | ; set a = 1 | ||
73 | ; let a = "hello" | ||
74 | ; let b = "world" | ||
75 | |||
76 | ; println(a) | ||
77 | ; println(b) | ||
78 | |||
79 | ; set b = a | ||
80 | ; set a = "WOOWOWO" | ||
81 | |||
82 | ; println(a) | ||
83 | ; println(b) | ||
84 | |||
85 | ; let a: S32[4] | ||
86 | ; set a[0] = 1 | ||
87 | ; set a[1] = 2 | ||
88 | ; set a[2] = 4 | ||
89 | ; set a[3] = 8 | ||
90 | ; let b = a | ||
91 | ; println(a[0] "--" a[1] "--" a[2] "--" a[3]) | ||
92 | ; println(b[0] "--" b[1] "--" b[2] "--" b[3]) | ||
93 | |||
94 | ; let a = 1 + 2 | ||
61 | ; a | 95 | ; a |
62 | 96 | ; let sum_int_uint: U16 = -2 + 0x5 | |
63 | ; let a = 8 | 97 | ; ; let sum_int_uint = -2 |
64 | ; let b = 16 | 98 | ; println(sum_int_uint) |
65 | ; let c = { | 99 | ; let varint: U16 = 0x0102030405060708 |
66 | ; let a = 32 | 100 | ; let varfloat: F32 = 1.0 |
67 | ; a + 8 | ||
68 | ; } | ||
69 | |||
70 | ; a + b + c | ||
71 | |||
72 | ; let a = 1 | ||
73 | ; if false { | ||
74 | ; set a = 2 | ||
75 | ; } | ||
76 | ; a | ||
77 | |||
78 | ; if true { | ||
79 | ; 1 + 2 | ||
80 | ; } else { | ||
81 | ; 3 + 4 | ||
82 | ; } | ||
83 | |||
84 | ; let a = 0 | ||
85 | ; while a < 10 { | ||
86 | ; set a = a + 1 | ||
87 | ; } | ||
88 | |||
89 | ; a | ||
90 | |||
91 | ; print(1) | ||
92 | ; println(1.0 + 2.0) | ||
93 | ; println("hello world " 1 " " 2.0 " wow!") | ||
diff --git a/tests/logic-shortcircuit.bad b/tests/logic-shortcircuit.bad new file mode 100644 index 0000000..a7e315e --- /dev/null +++ b/tests/logic-shortcircuit.bad | |||
@@ -0,0 +1,16 @@ | |||
1 | fun ret_true(): Bool { | ||
2 | print("ret_true ") | ||
3 | true | ||
4 | } | ||
5 | |||
6 | fun ret_false(): Bool { | ||
7 | print("ret_false ") | ||
8 | false | ||
9 | } | ||
10 | |||
11 | println("test1: " ret_true() and ret_false() and ret_true()) | ||
12 | println("test2: " ret_true() and ret_true() and ret_true()) | ||
13 | println("test3: " ret_false() and ret_true() and ret_true()) | ||
14 | println("test4: " ret_false() or ret_true() or ret_false()) | ||
15 | println("test5: " ret_true() or ret_true() or ret_false()) | ||
16 | println("test6: " ret_true() and (ret_true() or ret_false())) | ||
diff --git a/tests/nested.bad b/tests/nested.bad new file mode 100644 index 0000000..75eb967 --- /dev/null +++ b/tests/nested.bad | |||
@@ -0,0 +1,18 @@ | |||
1 | fun printer() println("wowo!") | ||
2 | |||
3 | let y = 4 | ||
4 | fun nested() { | ||
5 | fun adder(a: Int b: Int): Int { | ||
6 | fun printer() println("ho!") | ||
7 | printer() | ||
8 | printer() | ||
9 | printer() | ||
10 | y + a + b | ||
11 | } | ||
12 | for let i = 0, i < 2, set i += 1 { | ||
13 | println("i: " i " " adder(i, 2)) | ||
14 | } | ||
15 | } | ||
16 | |||
17 | nested() | ||
18 | printer() | ||
diff --git a/tests/pointers.bad b/tests/pointers.bad new file mode 100644 index 0000000..eda44b0 --- /dev/null +++ b/tests/pointers.bad | |||
@@ -0,0 +1,36 @@ | |||
1 | { | ||
2 | let a: Int = 32 | ||
3 | let b: @Int = @a | ||
4 | let c = @a | ||
5 | let d = @c | ||
6 | let e = a + b@ | ||
7 | let f = d@ | ||
8 | |||
9 | println("a -> " a) | ||
10 | println("b -> " b) | ||
11 | println("c -> " c) | ||
12 | println("d -> " d) | ||
13 | println("e -> " e) | ||
14 | println("f -> " f) | ||
15 | println("b@ -> " b@) | ||
16 | println("d@ -> " d@) | ||
17 | println("d@@ -> " d@@) | ||
18 | println("a == b@ and a == d@@ -> " a == b@ and a == d@@) | ||
19 | println("b == c and c == d@ -> " b == c and c == d@) | ||
20 | } | ||
21 | |||
22 | { | ||
23 | let a: Int = 32 | ||
24 | let ptr = @a | ||
25 | println("a " a) | ||
26 | println("ptr " ptr) | ||
27 | |||
28 | set ptr@ = 12 | ||
29 | println("a " a) | ||
30 | println("ptr " ptr) | ||
31 | |||
32 | let ptr2 = @ptr | ||
33 | set ptr2@@ = 6 | ||
34 | println("a " a) | ||
35 | println("ptr " ptr) | ||
36 | } | ||
diff --git a/tests/recursion.bad b/tests/recursion.bad new file mode 100644 index 0000000..0ab7fa0 --- /dev/null +++ b/tests/recursion.bad | |||
@@ -0,0 +1,19 @@ | |||
1 | fun recur(num: UInt) { | ||
2 | println("NUM: " num) | ||
3 | if num == 0 return(nil) | ||
4 | recur2(num - 1) | ||
5 | } | ||
6 | |||
7 | fun recur2(num: Int) { | ||
8 | println("NUM: " num) | ||
9 | if num == 0 return(nil) | ||
10 | recur(num - 1) | ||
11 | } | ||
12 | |||
13 | recur(5) | ||
14 | |||
15 | fun infrecur(msg: Str, num: Int) { | ||
16 | println("NUM: " msg " " num) | ||
17 | infrecur(msg num + 1) | ||
18 | } | ||
19 | infrecur(" -> " 8) | ||