blob: 81b2ca4bacdf927b6e6e575c1f9454f6208946f2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
(fate_version 1)
(global int test_var)
(set test_var 0)
(define_sequence seq0 ()
(set test_var 1)
)
(assert (= (var test_var) 0) FAILED: sequence A)
(call seq0)
(assert (= (var test_var) 1) FAILED: sequence B)
(set test_var 0)
(define_sequence seq1 ()
(set test_var (+ 1 (var test_var)))
(if (< (var test_var) 6)
(call seq1)
)
)
(call seq1)
(assert (= (var test_var) 6) FAILED: sequence C)
(set test_var 0)
(define_sequence seq2 ()
(local int a)
(set a 2)
(set test_var (+ (var a) (var test_var)))
(if (< (var test_var) 8)
(call seq2)
)
)
(call seq2)
(assert (= (var test_var) 8) FAILED: sequence D)
(set test_var 0)
(define_sequence seq3 (((ptr int) a_ptr))
(set (at a_ptr) 2)
)
(call seq3 (ptr test_var))
(assert (= (var test_var) 2) FAILED: sequence E)
(set test_var 0)
(define_sequence index_of_loop
(
((ptr int) result_holder)
((list int) collection)
(int target)
)
(local int collection_size)
(local int i)
(set collection_size (size collection))
(for (set i 0) (< (var i) (var collection_size)) (set i (+ (var i) 1))
(if (= (access (var i) collection) (var target))
(
(set (at result_holder) (var i))
(done)
)
)
)
(set (at result_holder) -1)
)
(global (list int) l0)
(add! 0 l0)
(add! 1 l0)
(add! 2 l0)
(add! 3 l0)
(add! 4 l0)
(add! 5 l0)
(call index_of_loop (ptr test_var) (var l0) 5)
(assert (= (var test_var) 5) FAILED: sequence E)
(call index_of_loop (ptr test_var) (var l0) 6)
(assert (= (var test_var) -1) FAILED: sequence F)
(define_sequence index_of_jump
(
((ptr int) result_holder)
((list int) collection)
(int target)
(int i)
(int collection_size)
)
(ifelse (= (var i) (var collection_size))
(set (at result_holder) -1)
(ifelse (= (access (var i) collection) (var target))
(set (at result_holder) (var i))
(jump index_of_jump
(var result_holder)
(var collection)
(var target)
(+ (var i) 1)
(var collection_size)
)
)
)
)
(call index_of_jump (ptr test_var) (var l0) 5 0 (size l0))
(assert (= (var test_var) 5) FAILED: sequence G)
(call index_of_jump (ptr test_var) (var l0) 6 0 (size l0))
(assert (= (var test_var) -1) FAILED: sequence H)
(define_sequence index_of_call
(
((ptr int) result_holder)
((list int) collection)
(int target)
(int i)
(int collection_size)
)
(ifelse (= (var i) (var collection_size))
(set (at result_holder) -1)
(ifelse (= (access (var i) collection) (var target))
(set (at result_holder) (var i))
(call index_of_call
(var result_holder)
(var collection)
(var target)
(+ (var i) 1)
(var collection_size)
)
)
)
)
(call index_of_call (ptr test_var) (var l0) 5 0 (size l0))
(assert (= (var test_var) 5) FAILED: sequence I)
(call index_of_call (ptr test_var) (var l0) 6 0 (size l0))
(assert (= (var test_var) -1) FAILED: sequence J)
(end)
|