1
Тест работы интерпретатора SBL ====================================
2
Утилита интерпретации. Проект SIMODO.
4
simodo-interpret [<параметры>] <файл>
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 :
19
Интерпретация выполнена успешно
20
--- test/source/engine/op/001-00-PushConstant.s-script :
24
Интерпретация выполнена успешно
25
--- test/source/engine/op/001-06-PushConstant.s-script :
28
1#{unit:["m", "/", "c"]}
29
Интерпретация выполнена успешно
30
--- test/source/engine/op/002-00-PushVariable.s-script :
34
Интерпретация выполнена успешно
35
--- test/source/engine/op/003-00-ObjectElement.s-script :
39
Интерпретация выполнена успешно
40
--- test/source/engine/op/004-00-FunctionCall.s-script :
44
Интерпретация выполнена успешно
45
--- test/source/engine/op/005-00-ProcedureCheck.s-script :
50
Интерпретация выполнена успешно
51
--- test/source/engine/op/006-00-Print.s-script :
55
Интерпретация выполнена успешно
56
--- test/source/engine/op/007-00-Block.s-script :
59
Интерпретация выполнена успешно
60
--- test/source/engine/op/009-01-ArrayElement.s-script :
61
# {initial_value : null} type auto
63
def auto : x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
68
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
70
Интерпретация выполнена успешно
71
--- test/source/engine/op/010-00-ObjectStructure.s-script :
72
print all { initial_value : 0.0, mutable : true, test_type : { test : true } }
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) }
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]]
84
["one", 2, 3.0, [null]]
85
Интерпретация выполнена успешно
86
--- test/source/engine/op/012-00-Import.s-script :
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
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
104
def test_type #{ not_initial_value : 0.0, mutable : true } import test type Flex
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
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
133
Интерпретация выполнена успешно
134
--- test/source/engine/op/016-01-Declaration.s-script :
135
#{ name : "array", dimentions: 1, initial_value : 0 } type array
142
Интерпретация выполнена успешно
143
--- test/source/engine/op/017-00-Initialize.s-script :
144
#{ initial_value : 0, mutable : true } type int
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
155
def var import test : test = {doc : 14}
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
165
def var bool #{ mast_be_initiate : true } :
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 } :
187
Интерпретация выполнена успешно
188
--- test/source/engine/op/031-00-FunctionDefinition.s-script :
189
#{ initial_value : null } type auto
190
#{ initial_value : 0 } type int
194
def auto : f = fn [x] (int : y, int : z) -> int { return x+y*z }
199
Интерпретация выполнена успешно
200
--- test/source/engine/op/031-01-FunctionDefinition.s-script :
201
#{ initial_value : null } type auto
202
#{ initial_value : 0 } type int
204
def auto : f = fn (int : y, int : z) -> int { return y*z }
209
Интерпретация выполнена успешно
210
--- test/source/engine/op/031-02-FunctionDefinition.s-script :
211
#{ initial_value : null } type auto
212
#{ initial_value : 0 } type int
214
def auto : f = fn (int : y, int : z) { print y*z }
219
Интерпретация выполнена успешно
220
--- test/source/engine/op/031-03-FunctionDefinition.s-script :
221
#{ initial_value : null } type auto
223
def auto : f = fn () { print 2*3 }
228
Интерпретация выполнена успешно
229
--- test/source/engine/op/031-04-FunctionDefinition.s-script :
230
#{ initial_value : 0 } type int
234
fn f (int : y, int : z) -> int { return x+y*z }
239
Интерпретация выполнена успешно
240
--- test/source/engine/op/071-01-Ternary.s-script :
241
print true ? "true" : "false"
244
Интерпретация выполнена успешно
245
--- test/source/engine/op/072-00-If.s-script :
258
Интерпретация выполнена успешно
259
--- test/source/engine/op/081-00-For.s-script :
260
#{ initial_value : 0, mutable : true } type int
262
for int : i in [1,2,3]
271
Интерпретация выполнена успешно
272
--- test/source/engine/op/082-00-While.s-script :
273
#{ initial_value : 0, mutable : true } type int
288
Интерпретация выполнена успешно
289
--- test/source/engine/op/083-00-DoWhile.s-script :
290
#{ initial_value : 0, mutable : true } type int
307
Интерпретация выполнена успешно
308
--- test/source/engine/op/085-00-Break.s-script :
309
#{ initial_value : 0, mutable : true } type int
325
Интерпретация выполнена успешно
326
--- test/source/engine/op/086-00-Continue.s-script :
327
#{ initial_value : 0, mutable : true } type int
345
Интерпретация выполнена успешно
346
--- test/source/engine/op/092-00-Using.s-script :
352
Интерпретация выполнена успешно
353
Тест работы анализатора SBL ====================================
354
--- test/source/engine/op/000-00-None.s-script :
357
Интерпретация выполнена успешно
358
--- test/source/engine/op/001-00-PushConstant.s-script :
361
Интерпретация выполнена успешно
362
--- test/source/engine/op/001-06-PushConstant.s-script :
365
Интерпретация выполнена успешно
366
--- test/source/engine/op/002-00-PushVariable.s-script :
369
Интерпретация выполнена успешно
370
--- test/source/engine/op/003-00-ObjectElement.s-script :
373
Интерпретация выполнена успешно
374
--- test/source/engine/op/004-00-FunctionCall.s-script :
377
Интерпретация выполнена успешно
378
--- test/source/engine/op/005-00-ProcedureCheck.s-script :
383
Интерпретация выполнена успешно
384
--- test/source/engine/op/006-00-Print.s-script :
387
Интерпретация выполнена успешно
388
--- test/source/engine/op/007-00-Block.s-script :
391
Интерпретация выполнена успешно
392
--- test/source/engine/op/009-01-ArrayElement.s-script :
393
# {initial_value : null} type auto
395
def auto : x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
400
Интерпретация выполнена успешно
401
--- test/source/engine/op/010-00-ObjectStructure.s-script :
402
print all { initial_value : 0.0, mutable : true, test_type : { test : true } }
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) }
408
Интерпретация выполнена успешно
409
--- test/source/engine/op/011-01-ArrayStructure.s-script :
410
print ["one", 2, 3.0, [null]]
412
Интерпретация выполнена успешно
413
--- test/source/engine/op/012-00-Import.s-script :
414
import test type test
418
Интерпретация выполнена успешно
419
--- test/source/engine/op/012-05-Import.s-script :
420
import "012-00-Import.s-script" type test
424
Интерпретация выполнена успешно
425
--- test/source/engine/op/013-00-Contract.s-script :
426
#{ test : true } contract test_type
428
def test_type #{ not_initial_value : 0.0, mutable : true } import test type Flex
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
447
Интерпретация выполнена успешно
448
--- test/source/engine/op/016-00-Declaration.s-script :
449
#{ initial_value : true } type bool
453
Интерпретация выполнена успешно
454
--- test/source/engine/op/016-01-Declaration.s-script :
455
#{ name : "array", dimentions: 1, initial_value : 0 } type array
461
Интерпретация выполнена успешно
462
--- test/source/engine/op/017-00-Initialize.s-script :
463
#{ initial_value : 0, mutable : true } type int
469
Интерпретация выполнена успешно
470
--- test/source/engine/op/017-01-Initialize.s-script :
471
#{ mutable : true } contract var
473
def var import test : test = {doc : 14}
477
Интерпретация выполнена успешно
478
--- test/source/engine/op/017-02-Initialize.s-script :
479
#{ mutable : true } contract var
480
#{ initial_value : true } type bool
482
def var bool #{ mast_be_initiate : true } :
489
Интерпретация выполнена успешно
490
--- test/source/engine/op/018-01-Assignment.s-script :
491
#{ initial_value : "init value", mutable : true } :
500
Интерпретация выполнена успешно
501
--- test/source/engine/op/031-00-FunctionDefinition.s-script :
502
#{ initial_value : null } type auto
503
#{ initial_value : 0 } type int
507
def auto : f = fn [x] (int : y, int : z) -> int { return x+y*z }
511
Интерпретация выполнена успешно
512
--- test/source/engine/op/031-01-FunctionDefinition.s-script :
513
#{ initial_value : null } type auto
514
#{ initial_value : 0 } type int
516
def auto : f = fn (int : y, int : z) -> int { return y*z }
520
Интерпретация выполнена успешно
521
--- test/source/engine/op/031-02-FunctionDefinition.s-script :
522
#{ initial_value : null } type auto
523
#{ initial_value : 0 } type int
525
def auto : f = fn (int : y, int : z) { print y*z }
529
Интерпретация выполнена успешно
530
--- test/source/engine/op/031-03-FunctionDefinition.s-script :
531
#{ initial_value : null } type auto
533
def auto : f = fn () { print 2*3 }
537
Интерпретация выполнена успешно
538
--- test/source/engine/op/031-04-FunctionDefinition.s-script :
539
#{ initial_value : 0 } type int
543
fn f (int : y, int : z) -> int { return x+y*z }
547
Интерпретация выполнена успешно
548
--- test/source/engine/op/071-01-Ternary.s-script :
549
print true ? "true" : "false"
551
Интерпретация выполнена успешно
552
--- test/source/engine/op/072-00-If.s-script :
563
Интерпретация выполнена успешно
564
--- test/source/engine/op/081-00-For.s-script :
565
#{ initial_value : 0, mutable : true } type int
567
for int : i in [1,2,3]
572
Интерпретация выполнена успешно
573
--- test/source/engine/op/082-00-While.s-script :
574
#{ initial_value : 0, mutable : true } type int
585
Интерпретация выполнена успешно
586
--- test/source/engine/op/083-00-DoWhile.s-script :
587
#{ initial_value : 0, mutable : true } type int
599
Интерпретация выполнена успешно
600
--- test/source/engine/op/085-00-Break.s-script :
601
#{ initial_value : 0, mutable : true } type int
613
Интерпретация выполнена успешно
614
--- test/source/engine/op/086-00-Continue.s-script :
615
#{ initial_value : 0, mutable : true } type int
628
Интерпретация выполнена успешно
629
--- test/source/engine/op/092-00-Using.s-script :
634
Интерпретация выполнена успешно