loom
1Тест работы интерпретатора SBL ====================================
2--- test/source/simodo-script/probe/bubble.simodo-script :
3// Пузырьковая сортировка массива
4
5def auto : a = [1,2,3,4,5,6,7,8,9,10]
6
7print a
8
9for int : i in Range(0,9)
10for int : j in Range(i+1,9)
11if a[i] < a[j] {
12def auto : v = a[i]
13a[i] = a[j]
14a[j] = v
15}
16
17print a
18--- interpret :
19[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
20[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
21Интерпретация выполнена успешно
22--- test/source/simodo-script/probe/function1.simodo-script :
23def auto : check_prime = function (int : no) -> int
24{
25def int : i
26def int : d = no / i
27print no + " / " + i + " = " + d
28return d
29}
30
31def int : i = 200
32
33call check_prime(i)
34--- interpret :
35Ошибка: Произошло исключение при обработке оператора SBL
36Описание исключения: Деление на ноль
37Позиция разбора: test/source/simodo-script/probe/function1.simodo-script:4:22[4,23]
38Интерпретация прервана
39--- test/source/simodo-script/probe/primes.simodo-script :
40/* Простейший алгоритм определения простых чисел
41
42Демонстрирует основные возможности семантического анализатора и интерпретатора,
43а также отображение семантической информации в SIMODO IDE.
44*/
45
46fn check_prime(int : no) -> bool
47{
48for int : i in Range(2, no/2+1)
49if no % i == 0
50return false
51
52return true
53}
54
55def int : start = 1
56def int : end = 1500
57
58print "Простые числа в интервале от " + start + " до " + end + ":"
59
60for int : i in Range(start,end)
61if check_prime(i)
62print i
63--- interpret :
64Простые числа в интервале от 1 до 1500:
651
663
675
687
6911
7013
7117
7219
7323
7429
7531
7637
7741
7843
7947
8053
8159
8261
8367
8471
8573
8679
8783
8889
8997
90101
91103
92107
93109
94113
95127
96131
97137
98139
99149
100151
101157
102163
103167
104173
105179
106181
107191
108193
109197
110199
111211
112223
113227
114229
115233
116239
117241
118251
119257
120263
121269
122271
123277
124281
125283
126293
127307
128311
129313
130317
131331
132337
133347
134349
135353
136359
137367
138373
139379
140383
141389
142397
143401
144409
145419
146421
147431
148433
149439
150443
151449
152457
153461
154463
155467
156479
157487
158491
159499
160503
161509
162521
163523
164541
165547
166557
167563
168569
169571
170577
171587
172593
173599
174601
175607
176613
177617
178619
179631
180641
181643
182647
183653
184659
185661
186673
187677
188683
189691
190701
191709
192719
193727
194733
195739
196743
197751
198757
199761
200769
201773
202787
203797
204809
205811
206821
207823
208827
209829
210839
211853
212857
213859
214863
215877
216881
217883
218887
219907
220911
221919
222929
223937
224941
225947
226953
227967
228971
229977
230983
231991
232997
2331009
2341013
2351019
2361021
2371031
2381033
2391039
2401049
2411051
2421061
2431063
2441069
2451087
2461091
2471093
2481097
2491103
2501109
2511117
2521123
2531129
2541151
2551153
2561163
2571171
2581181
2591187
2601193
2611201
2621213
2631217
2641223
2651229
2661231
2671237
2681249
2691259
2701277
2711279
2721283
2731289
2741291
2751297
2761301
2771303
2781307
2791319
2801321
2811327
2821361
2831367
2841373
2851381
2861399
2871409
2881423
2891427
2901429
2911433
2921439
2931447
2941451
2951453
2961459
2971471
2981481
2991483
3001487
3011489
3021493
3031499
304Интерпретация выполнена успешно
305Тест работы анализатора SBL ====================================
306--- test/source/simodo-script/probe/bubble.simodo-script :
307// Пузырьковая сортировка массива
308
309def auto : a = [1,2,3,4,5,6,7,8,9,10]
310
311print a
312
313for int : i in Range(0,9)
314for int : j in Range(i+1,9)
315if a[i] < a[j] {
316def auto : v = a[i]
317a[i] = a[j]
318a[j] = v
319}
320
321print a
322--- interpret :
323Интерпретация выполнена успешно
324--- test/source/simodo-script/probe/function1.simodo-script :
325def auto : check_prime = function (int : no) -> int
326{
327def int : i
328def int : d = no / i
329print no + " / " + i + " = " + d
330return d
331}
332
333def int : i = 200
334
335call check_prime(i)
336--- interpret :
337Ошибка: Произошло исключение при обработке оператора SBL
338Описание исключения: Деление на ноль
339Позиция разбора: test/source/simodo-script/probe/function1.simodo-script:4:22[4,23]
340Интерпретация прервана
341--- test/source/simodo-script/probe/primes.simodo-script :
342/* Простейший алгоритм определения простых чисел
343
344Демонстрирует основные возможности семантического анализатора и интерпретатора,
345а также отображение семантической информации в SIMODO IDE.
346*/
347
348fn check_prime(int : no) -> bool
349{
350for int : i in Range(2, no/2+1)
351if no % i == 0
352return false
353
354return true
355}
356
357def int : start = 1
358def int : end = 1500
359
360print "Простые числа в интервале от " + start + " до " + end + ":"
361
362for int : i in Range(start,end)
363if check_prime(i)
364print i
365--- interpret :
366Интерпретация выполнена успешно
367