loom

Форк
0
/
test-interpret-simodo-script-op.out 
634 строки · 18.5 Кб
1
Тест работы интерпретатора SBL ====================================
2
Утилита интерпретации. Проект SIMODO.
3
Формат запуска:
4
    simodo-interpret [<параметры>] <файл>
5
Параметры:
6
    -h | --help                       - отображение подсказки по запуску программы
7
    -v | --version                    - отображение версии программы
8
    -p | --type {a|v|analyze|preview} - тип интерпретации (по умолчанию: run)
9
    -s | --simodo-dir <путь>          - путь к папке установки simodo
10
    -c | --initial-contracts-file <путь> - путь к файлу обязательных контрактов
11
                                           (по умолчанию: initial-contracts.simodo-script),
12
                                           должен находиться в каталоге: data/grammar/contracts
13
    -m | --preload-module <имя>       - имя модуля для предварительно загрузки (можно указать несколько раз)
14
    -t | --time-intervals             - отображать интервалы времени разбора
15
    -S | --silence                    - не выводить диагностику утилиты
16
--- test/source/engine/op/000-00-None.s-script :
17
// Пустой файл
18
--- interpret :
19
Интерпретация выполнена успешно
20
--- test/source/engine/op/001-00-PushConstant.s-script :
21
print 1
22
--- interpret :
23
1
24
Интерпретация выполнена успешно
25
--- test/source/engine/op/001-06-PushConstant.s-script :
26
print all 1(m/c)
27
--- interpret :
28
1#{unit:["m", "/", "c"]}
29
Интерпретация выполнена успешно
30
--- test/source/engine/op/002-00-PushVariable.s-script :
31
print math
32
--- interpret :
33
{pi:3.141593}
34
Интерпретация выполнена успешно
35
--- test/source/engine/op/003-00-ObjectElement.s-script :
36
print math.pi
37
--- interpret :
38
3.141593
39
Интерпретация выполнена успешно
40
--- test/source/engine/op/004-00-FunctionCall.s-script :
41
print math.cos(0.0)
42
--- interpret :
43
1.0
44
Интерпретация выполнена успешно
45
--- test/source/engine/op/005-00-ProcedureCheck.s-script :
46
call math.sin(0.0)
47

48
//a = math.sin(0.0)
49
--- interpret :
50
Интерпретация выполнена успешно
51
--- test/source/engine/op/006-00-Print.s-script :
52
print math
53
--- interpret :
54
{pi:3.141593}
55
Интерпретация выполнена успешно
56
--- test/source/engine/op/007-00-Block.s-script :
57
{}
58
--- interpret :
59
Интерпретация выполнена успешно
60
--- test/source/engine/op/009-01-ArrayElement.s-script :
61
# {initial_value : null} type auto
62

63
def auto : x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
64

65
print x
66
print x[4]
67
 --- interpret :
68
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
69
4
70
Интерпретация выполнена успешно
71
--- test/source/engine/op/010-00-ObjectStructure.s-script :
72
print all { initial_value : 0.0, mutable : true, test_type : { test : true } }
73
--- interpret :
74
{initial_value:0.0, mutable:true, test_type:{test:true}}#{origin:"structure"}
75
Интерпретация выполнена успешно
76
--- test/source/engine/op/010-01-ObjectStructure.s-script :
77
print all { x : 0(m), y : 1(m), v : 10(m/c), a : 2(m/c/c) }
78
--- interpret :
79
{x:0, y:1, v:10, a:2}#{origin:"structure"}
80
Интерпретация выполнена успешно
81
--- test/source/engine/op/011-01-ArrayStructure.s-script :
82
print ["one", 2, 3.0, [null]]
83
--- interpret :
84
["one", 2, 3.0, [null]]
85
Интерпретация выполнена успешно
86
--- test/source/engine/op/012-00-Import.s-script :
87
import test type test
88

89
print all test
90
--- interpret :
91
{doc:"Нужно будет предусмотреть поддержку трансляции", test_string:<function>, set_test_string:<function>, fibers:<function>}#{origin:"type"}
92
Интерпретация выполнена успешно
93
--- test/source/engine/op/012-05-Import.s-script :
94
import "012-00-Import.s-script" type test
95

96
print all test
97
--- interpret :
98
{doc:"Нужно будет предусмотреть поддержку трансляции", test_string:<function>, set_test_string:<function>, fibers:<function>}#{origin:"type"}
99
{test:{doc:"Нужно будет предусмотреть поддержку трансляции", test_string:<function>, set_test_string:<function>, fibers:<function>}}#{origin:"type"}
100
Интерпретация выполнена успешно
101
--- test/source/engine/op/013-00-Contract.s-script :
102
#{ test : true } contract test_type
103

104
def test_type #{ not_initial_value : 0.0, mutable : true } import test type Flex
105

106
print all test_type
107
print all Flex
108
--- interpret :
109
null#{test:true, origin:"contract"}
110
{doc:"Нужно будет предусмотреть поддержку трансляции", test_string:<function>, set_test_string:<function>, fibers:<function>}#{test:true, not_initial_value:0.0, mutable:true, origin:"type"}
111
Интерпретация выполнена успешно
112
--- test/source/engine/op/015-00-Announcement.s-script :
113
#{ mutable : true } contract var
114
#{ initial_value : true, mast_be_initiate : true } type bool 
115

116
def var bool :
117
        ok,
118
        error = false
119

120
ok = true
121
        
122
print all ok
123
print all error
124
--- interpret :
125
true#{mutable:true, initial_value:true, mast_be_initiate:true, origin:"variable", property:true}
126
false#{mutable:true, initial_value:true, mast_be_initiate:true, origin:"variable", property:true}
127
Интерпретация выполнена успешно
128
--- test/source/engine/op/016-00-Declaration.s-script :
129
#{ initial_value : true } type bool
130

131
def bool : ok, error 
132
--- interpret :
133
Интерпретация выполнена успешно
134
--- test/source/engine/op/016-01-Declaration.s-script :
135
#{ name : "array", dimentions: 1, initial_value : 0 } type array
136

137
def array : a
138

139
print a
140
--- interpret :
141
0
142
Интерпретация выполнена успешно
143
--- test/source/engine/op/017-00-Initialize.s-script :
144
#{ initial_value : 0, mutable : true } type int
145

146
def int : i = 14 
147

148
print all i
149
 --- interpret :
150
14#{initial_value:0, mutable:true, origin:"variable", property:true}
151
Интерпретация выполнена успешно
152
--- test/source/engine/op/017-01-Initialize.s-script :
153
#{ mutable : true } contract var 
154

155
def var import test : test = {doc : 14}
156

157
print all test
158
   --- interpret :
159
{doc:"14", test_string:<function>, set_test_string:<function>, fibers:<function>}#{mutable:true, origin:"variable", property:true}
160
Интерпретация выполнена успешно
161
--- test/source/engine/op/017-02-Initialize.s-script :
162
#{ mutable : true } contract var 
163
#{ initial_value : true } type bool 
164

165
def var bool #{ mast_be_initiate : true } :
166
                ok    = true,
167
                error = false
168

169
print all ok
170
print all error
171
  --- interpret :
172
true#{mutable:true, initial_value:true, mast_be_initiate:true, origin:"variable", property:true}
173
false#{mutable:true, initial_value:true, mast_be_initiate:true, origin:"variable", property:true}
174
Интерпретация выполнена успешно
175
--- test/source/engine/op/018-01-Assignment.s-script :
176
#{ initial_value : "init value", mutable : true } :
177
        str
178

179
print str
180

181
str = "new value"
182

183
print str
184
--- interpret :
185
init value
186
new value
187
Интерпретация выполнена успешно
188
--- test/source/engine/op/031-00-FunctionDefinition.s-script :
189
#{ initial_value : null } type auto 
190
#{ initial_value : 0 } type int 
191

192
def int : x = 12
193

194
def auto : f = fn [x] (int : y, int : z) -> int { return x+y*z }
195

196
print f(2,3)
197
--- interpret :
198
18
199
Интерпретация выполнена успешно
200
--- test/source/engine/op/031-01-FunctionDefinition.s-script :
201
#{ initial_value : null } type auto 
202
#{ initial_value : 0 } type int 
203

204
def auto : f = fn (int : y, int : z) -> int { return y*z }
205

206
print f(2,3)
207
--- interpret :
208
6
209
Интерпретация выполнена успешно
210
--- test/source/engine/op/031-02-FunctionDefinition.s-script :
211
#{ initial_value : null } type auto 
212
#{ initial_value : 0 } type int 
213

214
def auto : f = fn (int : y, int : z) { print y*z }
215

216
call f(2,3)
217
--- interpret :
218
6
219
Интерпретация выполнена успешно
220
--- test/source/engine/op/031-03-FunctionDefinition.s-script :
221
#{ initial_value : null } type auto 
222

223
def auto : f = fn () { print 2*3 }
224

225
f()
226
--- interpret :
227
6
228
Интерпретация выполнена успешно
229
--- test/source/engine/op/031-04-FunctionDefinition.s-script :
230
#{ initial_value : 0 } type int 
231

232
def int : x = 12
233

234
fn f (int : y, int : z) -> int { return x+y*z }
235

236
print f(2,3)
237
--- interpret :
238
18
239
Интерпретация выполнена успешно
240
--- test/source/engine/op/071-01-Ternary.s-script :
241
print true ? "true" : "false"
242
--- interpret :
243
true
244
Интерпретация выполнена успешно
245
--- test/source/engine/op/072-00-If.s-script :
246
if true
247
    if false
248
        print "Wrong"
249
    else
250
        print "Ok"
251
else
252
    print "Wrong"
253
        
254
print "Done" 
255
     --- interpret :
256
Ok
257
Done
258
Интерпретация выполнена успешно
259
--- test/source/engine/op/081-00-For.s-script :
260
#{ initial_value : 0, mutable : true } type int
261

262
for int : i in [1,2,3]
263
    print i
264

265
print "Done"
266
--- interpret :
267
1
268
2
269
3
270
Done
271
Интерпретация выполнена успешно
272
--- test/source/engine/op/082-00-While.s-script :
273
#{ initial_value : 0, mutable : true } type int
274

275
def int : i = 1
276

277
while i < 4 {
278
    print i
279
    i = i + 1
280
}
281

282
print "Done"
283
--- interpret :
284
1
285
2
286
3
287
Done
288
Интерпретация выполнена успешно
289
--- test/source/engine/op/083-00-DoWhile.s-script :
290
#{ initial_value : 0, mutable : true } type int
291

292
def int : i = 0
293

294
do {
295
    print i
296
    i = i + 1
297
}
298
while i < 4
299

300
print "Done"
301
--- interpret :
302
0
303
1
304
2
305
3
306
Done
307
Интерпретация выполнена успешно
308
--- test/source/engine/op/085-00-Break.s-script :
309
#{ initial_value : 0, mutable : true } type int
310

311
def int : i = 1
312

313
while true {
314
    if i == 4 break
315
    print i
316
    i = i + 1
317
}
318

319
print "Done"
320
--- interpret :
321
1
322
2
323
3
324
Done
325
Интерпретация выполнена успешно
326
--- test/source/engine/op/086-00-Continue.s-script :
327
#{ initial_value : 0, mutable : true } type int
328

329
def int : i = -10
330

331
do {
332
    i = i + 1
333
    if i < 1 continue
334
    print i
335
}
336
while i < 4
337

338
print "Done"
339
--- interpret :
340
1
341
2
342
3
343
4
344
Done
345
Интерпретация выполнена успешно
346
--- test/source/engine/op/092-00-Using.s-script :
347
using math {
348
    print pi
349
}
350
--- interpret :
351
3.141593
352
Интерпретация выполнена успешно
353
Тест работы анализатора SBL ====================================
354
--- test/source/engine/op/000-00-None.s-script :
355
// Пустой файл
356
--- interpret :
357
Интерпретация выполнена успешно
358
--- test/source/engine/op/001-00-PushConstant.s-script :
359
print 1
360
--- interpret :
361
Интерпретация выполнена успешно
362
--- test/source/engine/op/001-06-PushConstant.s-script :
363
print all 1(m/c)
364
--- interpret :
365
Интерпретация выполнена успешно
366
--- test/source/engine/op/002-00-PushVariable.s-script :
367
print math
368
--- interpret :
369
Интерпретация выполнена успешно
370
--- test/source/engine/op/003-00-ObjectElement.s-script :
371
print math.pi
372
--- interpret :
373
Интерпретация выполнена успешно
374
--- test/source/engine/op/004-00-FunctionCall.s-script :
375
print math.cos(0.0)
376
--- interpret :
377
Интерпретация выполнена успешно
378
--- test/source/engine/op/005-00-ProcedureCheck.s-script :
379
call math.sin(0.0)
380

381
//a = math.sin(0.0)
382
--- interpret :
383
Интерпретация выполнена успешно
384
--- test/source/engine/op/006-00-Print.s-script :
385
print math
386
--- interpret :
387
Интерпретация выполнена успешно
388
--- test/source/engine/op/007-00-Block.s-script :
389
{}
390
--- interpret :
391
Интерпретация выполнена успешно
392
--- test/source/engine/op/009-01-ArrayElement.s-script :
393
# {initial_value : null} type auto
394

395
def auto : x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
396

397
print x
398
print x[4]
399
 --- interpret :
400
Интерпретация выполнена успешно
401
--- test/source/engine/op/010-00-ObjectStructure.s-script :
402
print all { initial_value : 0.0, mutable : true, test_type : { test : true } }
403
--- interpret :
404
Интерпретация выполнена успешно
405
--- test/source/engine/op/010-01-ObjectStructure.s-script :
406
print all { x : 0(m), y : 1(m), v : 10(m/c), a : 2(m/c/c) }
407
--- interpret :
408
Интерпретация выполнена успешно
409
--- test/source/engine/op/011-01-ArrayStructure.s-script :
410
print ["one", 2, 3.0, [null]]
411
--- interpret :
412
Интерпретация выполнена успешно
413
--- test/source/engine/op/012-00-Import.s-script :
414
import test type test
415

416
print all test
417
--- interpret :
418
Интерпретация выполнена успешно
419
--- test/source/engine/op/012-05-Import.s-script :
420
import "012-00-Import.s-script" type test
421

422
print all test
423
--- interpret :
424
Интерпретация выполнена успешно
425
--- test/source/engine/op/013-00-Contract.s-script :
426
#{ test : true } contract test_type
427

428
def test_type #{ not_initial_value : 0.0, mutable : true } import test type Flex
429

430
print all test_type
431
print all Flex
432
--- interpret :
433
Интерпретация выполнена успешно
434
--- test/source/engine/op/015-00-Announcement.s-script :
435
#{ mutable : true } contract var
436
#{ initial_value : true, mast_be_initiate : true } type bool 
437

438
def var bool :
439
        ok,
440
        error = false
441

442
ok = true
443
        
444
print all ok
445
print all error
446
--- interpret :
447
Интерпретация выполнена успешно
448
--- test/source/engine/op/016-00-Declaration.s-script :
449
#{ initial_value : true } type bool
450

451
def bool : ok, error 
452
--- interpret :
453
Интерпретация выполнена успешно
454
--- test/source/engine/op/016-01-Declaration.s-script :
455
#{ name : "array", dimentions: 1, initial_value : 0 } type array
456

457
def array : a
458

459
print a
460
--- interpret :
461
Интерпретация выполнена успешно
462
--- test/source/engine/op/017-00-Initialize.s-script :
463
#{ initial_value : 0, mutable : true } type int
464

465
def int : i = 14 
466

467
print all i
468
 --- interpret :
469
Интерпретация выполнена успешно
470
--- test/source/engine/op/017-01-Initialize.s-script :
471
#{ mutable : true } contract var 
472

473
def var import test : test = {doc : 14}
474

475
print all test
476
   --- interpret :
477
Интерпретация выполнена успешно
478
--- test/source/engine/op/017-02-Initialize.s-script :
479
#{ mutable : true } contract var 
480
#{ initial_value : true } type bool 
481

482
def var bool #{ mast_be_initiate : true } :
483
                ok    = true,
484
                error = false
485

486
print all ok
487
print all error
488
  --- interpret :
489
Интерпретация выполнена успешно
490
--- test/source/engine/op/018-01-Assignment.s-script :
491
#{ initial_value : "init value", mutable : true } :
492
        str
493

494
print str
495

496
str = "new value"
497

498
print str
499
--- interpret :
500
Интерпретация выполнена успешно
501
--- test/source/engine/op/031-00-FunctionDefinition.s-script :
502
#{ initial_value : null } type auto 
503
#{ initial_value : 0 } type int 
504

505
def int : x = 12
506

507
def auto : f = fn [x] (int : y, int : z) -> int { return x+y*z }
508

509
print f(2,3)
510
--- interpret :
511
Интерпретация выполнена успешно
512
--- test/source/engine/op/031-01-FunctionDefinition.s-script :
513
#{ initial_value : null } type auto 
514
#{ initial_value : 0 } type int 
515

516
def auto : f = fn (int : y, int : z) -> int { return y*z }
517

518
print f(2,3)
519
--- interpret :
520
Интерпретация выполнена успешно
521
--- test/source/engine/op/031-02-FunctionDefinition.s-script :
522
#{ initial_value : null } type auto 
523
#{ initial_value : 0 } type int 
524

525
def auto : f = fn (int : y, int : z) { print y*z }
526

527
call f(2,3)
528
--- interpret :
529
Интерпретация выполнена успешно
530
--- test/source/engine/op/031-03-FunctionDefinition.s-script :
531
#{ initial_value : null } type auto 
532

533
def auto : f = fn () { print 2*3 }
534

535
f()
536
--- interpret :
537
Интерпретация выполнена успешно
538
--- test/source/engine/op/031-04-FunctionDefinition.s-script :
539
#{ initial_value : 0 } type int 
540

541
def int : x = 12
542

543
fn f (int : y, int : z) -> int { return x+y*z }
544

545
print f(2,3)
546
--- interpret :
547
Интерпретация выполнена успешно
548
--- test/source/engine/op/071-01-Ternary.s-script :
549
print true ? "true" : "false"
550
--- interpret :
551
Интерпретация выполнена успешно
552
--- test/source/engine/op/072-00-If.s-script :
553
if true
554
    if false
555
        print "Wrong"
556
    else
557
        print "Ok"
558
else
559
    print "Wrong"
560
        
561
print "Done" 
562
     --- interpret :
563
Интерпретация выполнена успешно
564
--- test/source/engine/op/081-00-For.s-script :
565
#{ initial_value : 0, mutable : true } type int
566

567
for int : i in [1,2,3]
568
    print i
569

570
print "Done"
571
--- interpret :
572
Интерпретация выполнена успешно
573
--- test/source/engine/op/082-00-While.s-script :
574
#{ initial_value : 0, mutable : true } type int
575

576
def int : i = 1
577

578
while i < 4 {
579
    print i
580
    i = i + 1
581
}
582

583
print "Done"
584
--- interpret :
585
Интерпретация выполнена успешно
586
--- test/source/engine/op/083-00-DoWhile.s-script :
587
#{ initial_value : 0, mutable : true } type int
588

589
def int : i = 0
590

591
do {
592
    print i
593
    i = i + 1
594
}
595
while i < 4
596

597
print "Done"
598
--- interpret :
599
Интерпретация выполнена успешно
600
--- test/source/engine/op/085-00-Break.s-script :
601
#{ initial_value : 0, mutable : true } type int
602

603
def int : i = 1
604

605
while true {
606
    if i == 4 break
607
    print i
608
    i = i + 1
609
}
610

611
print "Done"
612
--- interpret :
613
Интерпретация выполнена успешно
614
--- test/source/engine/op/086-00-Continue.s-script :
615
#{ initial_value : 0, mutable : true } type int
616

617
def int : i = -10
618

619
do {
620
    i = i + 1
621
    if i < 1 continue
622
    print i
623
}
624
while i < 4
625

626
print "Done"
627
--- interpret :
628
Интерпретация выполнена успешно
629
--- test/source/engine/op/092-00-Using.s-script :
630
using math {
631
    print pi
632
}
633
--- interpret :
634
Интерпретация выполнена успешно
635

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.