1
Тест работы интерпретатора SBL ====================================
2
Утилита интерпретации. Проект SIMODO.
4
simodo-interpret [<параметры>] <файл>
6
-h | --help - отображение подсказки по запуску программы
7
-v | --version - отображение версии программы
8
-p | --type {a|v|analyze|preview} - тип интерпретации (по умолчанию: run)
9
-s | --semantics-dir <путь> - путь к интерпретаторам (по умолчанию: bin/semantics)
10
-a | --hard-modules-dir <путь> - путь к каталогу жёстких модулей (по умолчанию: bin/modules)
11
-g | --grammars-dir <путь> - путь к каталогу грамматик (по умолчанию: data/grammar)
12
-c | --initial-contracts-file <путь> - путь к файлу обязательных контрактов
13
(по умолчанию: initial-contracts.simodo-script),
14
должен находиться в каталоге: data/grammar/contracts
15
-m | --preload-module <имя> - имя модуля для предварительно загрузки (можно указать несколько раз)
16
-t | --time-intervals - отображать интервалы времени разбора
17
-d | --debug [<timeout>] - режим отладки и timeout для остановки по времени (в секундах)
18
| --stop [<timeout>] - прекращать работу после остановки по истечению времени (в секундах)
19
-f | --full-debug-info - выводить полную информацию по всем рабочим нитям
20
-b | --breakpoint [<file>] <line> - установить точку останова (можно задавать многократно)
21
-S | --silence - не выводить диагностику утилиты
22
--- test/source/simodo-script/op/000-00-None.simodo-script :
25
Интерпретация выполнена успешно
26
--- test/source/simodo-script/op/001-00-PushConstant.simodo-script :
30
Интерпретация выполнена успешно
31
--- test/source/simodo-script/op/001-06-PushConstant.simodo-script :
34
1#{unit:["m", "/", "c"]}
35
Интерпретация выполнена успешно
36
--- test/source/simodo-script/op/002-00-PushVariable.simodo-script :
40
Интерпретация выполнена успешно
41
--- test/source/simodo-script/op/003-00-ObjectElement.simodo-script :
45
Интерпретация выполнена успешно
46
--- test/source/simodo-script/op/004-00-FunctionCall.simodo-script :
50
Интерпретация выполнена успешно
51
--- test/source/simodo-script/op/005-00-ProcedureCheck.simodo-script :
56
Интерпретация выполнена успешно
57
--- test/source/simodo-script/op/006-00-Print.simodo-script :
61
Интерпретация выполнена успешно
62
--- test/source/simodo-script/op/007-00-Block.simodo-script :
65
Интерпретация выполнена успешно
66
--- test/source/simodo-script/op/009-01-ArrayElement.simodo-script :
67
# {initial_value : null} type auto
69
def auto : x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
74
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
76
Интерпретация выполнена успешно
77
--- test/source/simodo-script/op/010-00-ObjectStructure.simodo-script :
78
print all { initial_value : 0.0, mutable : true, test_type : { test : true } }
80
{initial_value:0.0, mutable:true, test_type:{test:true}}#{origin:"structure"}
81
Интерпретация выполнена успешно
82
--- test/source/simodo-script/op/010-01-ObjectStructure.simodo-script :
83
print all { x : 0(m), y : 1(m), v : 10(m/c), a : 2(m/c/c) }
85
{x:0, y:1, v:10, a:2}#{origin:"structure"}
86
Интерпретация выполнена успешно
87
--- test/source/simodo-script/op/011-01-ArrayStructure.simodo-script :
88
print ["one", 2, 3.0, [null]]
90
["one", 2, 3.0, [<null>]]
91
Интерпретация выполнена успешно
92
--- test/source/simodo-script/op/012-00-Import.simodo-script :
97
{doc:"Нужно будет предусмотреть поддержку трансляции", test_string:<function>, set_test_string:<function>, fibers:<function>}#{origin:"type"}
98
Интерпретация выполнена успешно
99
--- test/source/simodo-script/op/012-05-Import.simodo-script :
100
import "012-00-Import.simodo-script" type test
104
{doc:"Нужно будет предусмотреть поддержку трансляции", test_string:<function>, set_test_string:<function>, fibers:<function>}#{origin:"type"}
105
{test:{doc:"Нужно будет предусмотреть поддержку трансляции", test_string:<function>, set_test_string:<function>, fibers:<function>}}#{origin:"type"}
106
Интерпретация выполнена успешно
107
--- test/source/simodo-script/op/013-00-Contract.simodo-script :
108
#{ test : true } contract test_type
110
def test_type #{ not_initial_value : 0.0, mutable : true } import test type Flex
115
<null>#{test:true, origin:"contract"}
116
{doc:"Нужно будет предусмотреть поддержку трансляции", test_string:<function>, set_test_string:<function>, fibers:<function>}#{test:true, not_initial_value:0.0, mutable:true, origin:"type"}
117
Интерпретация выполнена успешно
118
--- test/source/simodo-script/op/015-00-Announcement.simodo-script :
119
#{ mutable : true } contract var
120
#{ initial_value : true, mast_be_initiate : true } type bool
131
true#{mutable:true, initial_value:true, mast_be_initiate:true, origin:"variable", property:true}
132
false#{mutable:true, initial_value:true, mast_be_initiate:true, origin:"variable", property:true}
133
Интерпретация выполнена успешно
134
--- test/source/simodo-script/op/016-00-Declaration.simodo-script :
135
#{ initial_value : true } type bool
139
Интерпретация выполнена успешно
140
--- test/source/simodo-script/op/016-01-Declaration.simodo-script :
141
#{ name : "array", dimentions: 1, initial_value : 0 } type array
148
Интерпретация выполнена успешно
149
--- test/source/simodo-script/op/016-02-Declaration.simodo-script :
150
// type parameters (дженерики?)
151
#{ name : "array", dimentions: 2, initial_value : 0 } type matrix
157
Ошибка: Invalid type conversion from null to function
158
Позиция разбора: test/source/simodo-script/op/016-02-Declaration.simodo-script:4:5[4,11]
159
Интерпретация прервана
160
--- test/source/simodo-script/op/017-00-Initialize.simodo-script :
161
#{ initial_value : 0, mutable : true } type int
167
14#{initial_value:0, mutable:true, origin:"variable", property:true}
168
Интерпретация выполнена успешно
169
--- test/source/simodo-script/op/017-01-Initialize.simodo-script :
170
#{ mutable : true } contract var
172
def var import test : test = {doc : 14}
176
{doc:"14", test_string:<function>, set_test_string:<function>, fibers:<function>}#{mutable:true, origin:"variable", property:true}
177
Интерпретация выполнена успешно
178
--- test/source/simodo-script/op/017-02-Initialize.simodo-script :
179
#{ mutable : true } contract var
180
#{ initial_value : true } type bool
182
def var bool #{ mast_be_initiate : true } :
189
true#{mutable:true, initial_value:true, mast_be_initiate:true, origin:"variable", property:true}
190
false#{mutable:true, initial_value:true, mast_be_initiate:true, origin:"variable", property:true}
191
Интерпретация выполнена успешно
192
--- test/source/simodo-script/op/018-01-Assignment.simodo-script :
193
#{ initial_value : "init value", mutable : true } :
204
Интерпретация выполнена успешно
205
--- test/source/simodo-script/op/020-00-GroupInitialize.simodo-script :
210
Ошибка: Произошло исключение в методе OperationParser::parseGroupInitialize при обработке оператора SBL
211
Описание исключения: Incorrect group initialization structure
212
Позиция разбора: test/source/simodo-script/op/020-00-GroupInitialize.simodo-script:1:8[1,9]
213
Интерпретация прервана
214
--- test/source/simodo-script/op/020-02-GroupInitialize.simodo-script :
215
# {} : [a, b] = { x : 1, a : 2.0, y : true, b : "qwerty", z : 5, c : null}
218
print b // д.б. "qwetry"
220
Ошибка: Произошло исключение в методе OperationParser::parseGroupInitialize при обработке оператора SBL
221
Описание исключения: Incorrect group initialization structure
222
Позиция разбора: test/source/simodo-script/op/020-02-GroupInitialize.simodo-script:1:8[1,9]
223
Интерпретация прервана
224
--- test/source/simodo-script/op/020-03-GroupInitialize.simodo-script :
225
# {} : [ , a, , b, ] = [ 1, 2.0, true, "qwerty", 5, null]
228
print b // д.б. "qwetry"
230
Ошибка: Произошло исключение в методе OperationParser::parseGroupInitialize при обработке оператора SBL
231
Описание исключения: Incorrect group initialization structure
232
Позиция разбора: test/source/simodo-script/op/020-03-GroupInitialize.simodo-script:1:8[1,9]
233
Интерпретация прервана
234
--- test/source/simodo-script/op/031-00-FunctionDefinition.simodo-script :
235
#{ initial_value : null } type auto
236
#{ initial_value : 0 } type int
240
def auto : f = fn [x] (int : y, int : z) -> int { return x+y*z }
245
Интерпретация выполнена успешно
246
--- test/source/simodo-script/op/031-01-FunctionDefinition.simodo-script :
247
#{ initial_value : null } type auto
248
#{ initial_value : 0 } type int
250
def auto : f = fn (int : y, int : z) -> int { return y*z }
255
Интерпретация выполнена успешно
256
--- test/source/simodo-script/op/031-02-FunctionDefinition.simodo-script :
257
#{ initial_value : null } type auto
258
#{ initial_value : 0 } type int
260
def auto : f = fn (int : y, int : z) { print y*z }
265
Интерпретация выполнена успешно
266
--- test/source/simodo-script/op/031-03-FunctionDefinition.simodo-script :
267
#{ initial_value : null } type auto
269
def auto : f = fn () { print 2*3 }
274
Интерпретация выполнена успешно
275
--- test/source/simodo-script/op/031-04-FunctionDefinition.simodo-script :
276
#{ initial_value : 0 } type int
280
fn f (int : y, int : z) -> int { return x+y*z }
285
Интерпретация выполнена успешно
286
--- test/source/simodo-script/op/071-01-Ternary.simodo-script :
287
print true ? "true" : "false"
290
Интерпретация выполнена успешно
291
--- test/source/simodo-script/op/072-00-If.simodo-script :
304
Интерпретация выполнена успешно
305
--- test/source/simodo-script/op/081-00-For.simodo-script :
306
#{ initial_value : 0, mutable : true } type int
308
for int : i in [1,2,3]
317
Интерпретация выполнена успешно
318
--- test/source/simodo-script/op/082-00-While.simodo-script :
319
#{ initial_value : 0, mutable : true } type int
334
Интерпретация выполнена успешно
335
--- test/source/simodo-script/op/083-00-DoWhile.simodo-script :
336
#{ initial_value : 0, mutable : true } type int
353
Интерпретация выполнена успешно
354
--- test/source/simodo-script/op/085-00-Break.simodo-script :
355
#{ initial_value : 0, mutable : true } type int
371
Интерпретация выполнена успешно
372
--- test/source/simodo-script/op/086-00-Continue.simodo-script :
373
#{ initial_value : 0, mutable : true } type int
391
Интерпретация выполнена успешно
392
Тест работы анализатора SBL ====================================
393
--- test/source/simodo-script/op/000-00-None.simodo-script :
396
Интерпретация выполнена успешно
397
--- test/source/simodo-script/op/001-00-PushConstant.simodo-script :
400
Интерпретация выполнена успешно
401
--- test/source/simodo-script/op/001-06-PushConstant.simodo-script :
404
Интерпретация выполнена успешно
405
--- test/source/simodo-script/op/002-00-PushVariable.simodo-script :
408
Интерпретация выполнена успешно
409
--- test/source/simodo-script/op/003-00-ObjectElement.simodo-script :
412
Интерпретация выполнена успешно
413
--- test/source/simodo-script/op/004-00-FunctionCall.simodo-script :
416
Интерпретация выполнена успешно
417
--- test/source/simodo-script/op/005-00-ProcedureCheck.simodo-script :
422
Интерпретация выполнена успешно
423
--- test/source/simodo-script/op/006-00-Print.simodo-script :
426
Интерпретация выполнена успешно
427
--- test/source/simodo-script/op/007-00-Block.simodo-script :
430
Интерпретация выполнена успешно
431
--- test/source/simodo-script/op/009-01-ArrayElement.simodo-script :
432
# {initial_value : null} type auto
434
def auto : x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
439
Интерпретация выполнена успешно
440
--- test/source/simodo-script/op/010-00-ObjectStructure.simodo-script :
441
print all { initial_value : 0.0, mutable : true, test_type : { test : true } }
443
Интерпретация выполнена успешно
444
--- test/source/simodo-script/op/010-01-ObjectStructure.simodo-script :
445
print all { x : 0(m), y : 1(m), v : 10(m/c), a : 2(m/c/c) }
447
Интерпретация выполнена успешно
448
--- test/source/simodo-script/op/011-01-ArrayStructure.simodo-script :
449
print ["one", 2, 3.0, [null]]
451
Интерпретация выполнена успешно
452
--- test/source/simodo-script/op/012-00-Import.simodo-script :
453
import test type test
457
Интерпретация выполнена успешно
458
--- test/source/simodo-script/op/012-05-Import.simodo-script :
459
import "012-00-Import.simodo-script" type test
463
Интерпретация выполнена успешно
464
--- test/source/simodo-script/op/013-00-Contract.simodo-script :
465
#{ test : true } contract test_type
467
def test_type #{ not_initial_value : 0.0, mutable : true } import test type Flex
472
Интерпретация выполнена успешно
473
--- test/source/simodo-script/op/015-00-Announcement.simodo-script :
474
#{ mutable : true } contract var
475
#{ initial_value : true, mast_be_initiate : true } type bool
486
Интерпретация выполнена успешно
487
--- test/source/simodo-script/op/016-00-Declaration.simodo-script :
488
#{ initial_value : true } type bool
492
Интерпретация выполнена успешно
493
--- test/source/simodo-script/op/016-01-Declaration.simodo-script :
494
#{ name : "array", dimentions: 1, initial_value : 0 } type array
500
Интерпретация выполнена успешно
501
--- test/source/simodo-script/op/016-02-Declaration.simodo-script :
502
// type parameters (дженерики?)
503
#{ name : "array", dimentions: 2, initial_value : 0 } type matrix
509
Ошибка: Invalid type conversion from null to function
510
Позиция разбора: test/source/simodo-script/op/016-02-Declaration.simodo-script:4:5[4,11]
511
Интерпретация выполнена успешно
512
--- test/source/simodo-script/op/017-00-Initialize.simodo-script :
513
#{ initial_value : 0, mutable : true } type int
519
Интерпретация выполнена успешно
520
--- test/source/simodo-script/op/017-01-Initialize.simodo-script :
521
#{ mutable : true } contract var
523
def var import test : test = {doc : 14}
527
Интерпретация выполнена успешно
528
--- test/source/simodo-script/op/017-02-Initialize.simodo-script :
529
#{ mutable : true } contract var
530
#{ initial_value : true } type bool
532
def var bool #{ mast_be_initiate : true } :
539
Интерпретация выполнена успешно
540
--- test/source/simodo-script/op/018-01-Assignment.simodo-script :
541
#{ initial_value : "init value", mutable : true } :
550
Интерпретация выполнена успешно
551
--- test/source/simodo-script/op/020-00-GroupInitialize.simodo-script :
556
Ошибка: Произошло исключение в методе OperationParser::parseGroupInitialize при обработке оператора SBL
557
Описание исключения: Incorrect group initialization structure
558
Позиция разбора: test/source/simodo-script/op/020-00-GroupInitialize.simodo-script:1:8[1,9]
559
Интерпретация прервана
560
--- test/source/simodo-script/op/020-02-GroupInitialize.simodo-script :
561
# {} : [a, b] = { x : 1, a : 2.0, y : true, b : "qwerty", z : 5, c : null}
564
print b // д.б. "qwetry"
566
Ошибка: Произошло исключение в методе OperationParser::parseGroupInitialize при обработке оператора SBL
567
Описание исключения: Incorrect group initialization structure
568
Позиция разбора: test/source/simodo-script/op/020-02-GroupInitialize.simodo-script:1:8[1,9]
569
Интерпретация прервана
570
--- test/source/simodo-script/op/020-03-GroupInitialize.simodo-script :
571
# {} : [ , a, , b, ] = [ 1, 2.0, true, "qwerty", 5, null]
574
print b // д.б. "qwetry"
576
Ошибка: Произошло исключение в методе OperationParser::parseGroupInitialize при обработке оператора SBL
577
Описание исключения: Incorrect group initialization structure
578
Позиция разбора: test/source/simodo-script/op/020-03-GroupInitialize.simodo-script:1:8[1,9]
579
Интерпретация прервана
580
--- test/source/simodo-script/op/031-00-FunctionDefinition.simodo-script :
581
#{ initial_value : null } type auto
582
#{ initial_value : 0 } type int
586
def auto : f = fn [x] (int : y, int : z) -> int { return x+y*z }
590
Интерпретация выполнена успешно
591
--- test/source/simodo-script/op/031-01-FunctionDefinition.simodo-script :
592
#{ initial_value : null } type auto
593
#{ initial_value : 0 } type int
595
def auto : f = fn (int : y, int : z) -> int { return y*z }
599
Интерпретация выполнена успешно
600
--- test/source/simodo-script/op/031-02-FunctionDefinition.simodo-script :
601
#{ initial_value : null } type auto
602
#{ initial_value : 0 } type int
604
def auto : f = fn (int : y, int : z) { print y*z }
608
Интерпретация выполнена успешно
609
--- test/source/simodo-script/op/031-03-FunctionDefinition.simodo-script :
610
#{ initial_value : null } type auto
612
def auto : f = fn () { print 2*3 }
616
Интерпретация выполнена успешно
617
--- test/source/simodo-script/op/031-04-FunctionDefinition.simodo-script :
618
#{ initial_value : 0 } type int
622
fn f (int : y, int : z) -> int { return x+y*z }
626
Интерпретация выполнена успешно
627
--- test/source/simodo-script/op/071-01-Ternary.simodo-script :
628
print true ? "true" : "false"
630
Интерпретация выполнена успешно
631
--- test/source/simodo-script/op/072-00-If.simodo-script :
642
Интерпретация выполнена успешно
643
--- test/source/simodo-script/op/081-00-For.simodo-script :
644
#{ initial_value : 0, mutable : true } type int
646
for int : i in [1,2,3]
651
Интерпретация выполнена успешно
652
--- test/source/simodo-script/op/082-00-While.simodo-script :
653
#{ initial_value : 0, mutable : true } type int
664
Интерпретация выполнена успешно
665
--- test/source/simodo-script/op/083-00-DoWhile.simodo-script :
666
#{ initial_value : 0, mutable : true } type int
678
Интерпретация выполнена успешно
679
--- test/source/simodo-script/op/085-00-Break.simodo-script :
680
#{ initial_value : 0, mutable : true } type int
692
Интерпретация выполнена успешно
693
--- test/source/simodo-script/op/086-00-Continue.simodo-script :
694
#{ initial_value : 0, mutable : true } type int
707
Интерпретация выполнена успешно