@artel/ru-compiler 0.6.25206 → 0.6.25257
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270/./320/260/321/200/321/202/320/265/320/273/321/214//320/232/320/276/320/275/321/204/320/270/320/263/321/203/321/200/320/260/321/206/320/270/321/217.json +2 -2
- package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/222/320/270/320/264/320/241/320/273/320/276/320/262/320/260./320/260/321/200/321/202 +7 -8
- package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/222/320/270/320/264/320/243/320/267/320/273/320/260./320/260/321/200/321/202 +224 -0
- package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/224/320/265/320/273/320/270/321/202/320/265/320/273/321/214./320/260/321/200/321/202 +112 -123
- package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/224/320/270/320/260/320/273/320/265/320/272/321/202/320/237/320/260/320/272/320/265/321/202/320/260./320/260/321/200/321/202 +3 -3
- package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/241/320/273/320/276/320/262/320/260/321/200/321/214/320/241/320/273/320/276/320/262./320/260/321/200/321/202 +168 -171
- package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/242/320/265/320/272/321/201/321/202/320/235/320/265/321/215/320/272/321/200/320/260/320/275/320/270/321/200/320/276/320/262/320/260/320/275/320/275/321/213/320/271./320/260/321/200/321/202 +39 -8
- package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/247/320/270/321/202/320/260/321/202/320/265/320/273/321/214/320/247/320/270/321/201/320/273/320/260./320/260/321/200/321/202 +12 -12
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
|
|
2
|
-
тип Нотация = вариант
|
|
3
|
-
{
|
|
4
|
-
артель = 0
|
|
5
|
-
опись = 1
|
|
6
|
-
}
|
|
7
|
-
|
|
8
2
|
тип НастройкиДелителя = объект
|
|
9
3
|
{
|
|
10
|
-
нотация: Нотация?
|
|
11
4
|
пропускать-незначимое: ДаНет?
|
|
12
5
|
позиция-начала: Целое?
|
|
13
6
|
длина: Целое?
|
|
@@ -33,41 +26,83 @@
|
|
|
33
26
|
{
|
|
34
27
|
конст текст: Текст
|
|
35
28
|
чтение лексема: Лексема { лексема`` }
|
|
36
|
-
скрыто
|
|
37
|
-
запись лексема { лексема`` = значение }
|
|
38
29
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
30
|
+
скрытое
|
|
31
|
+
{
|
|
32
|
+
запись лексема { лексема`` = значение }
|
|
33
|
+
|
|
34
|
+
пропускать-пробелы: ДаНет
|
|
35
|
+
позиция-конца: Целое
|
|
36
|
+
текущая-позиция: Целое
|
|
37
|
+
баланс-фигурных-скобок: Целое
|
|
38
|
+
стек-баланса-фигурных-скобок: Список<Целое>
|
|
39
|
+
конст уникальные-тексты-лексем: Словарь<Текст, Текст>
|
|
40
|
+
}
|
|
46
41
|
|
|
47
42
|
создание(текст`: Текст, настройки: НастройкиДелителя? = пусто)
|
|
48
43
|
{
|
|
49
44
|
текст = текст`
|
|
50
|
-
нотация = настройки?.нотация ?? Нотация.артель
|
|
51
45
|
пропускать-пробелы = настройки?.пропускать-незначимое ?? нет
|
|
52
46
|
текущая-позиция = настройки?.позиция-начала ?? 0
|
|
53
47
|
конст длина = настройки?.длина
|
|
54
|
-
позиция-конца =
|
|
48
|
+
позиция-конца = условно(длина != пусто, текущая-позиция + длина, текст.длина)
|
|
55
49
|
|
|
56
50
|
баланс-фигурных-скобок = 0
|
|
57
51
|
стек-баланса-фигурных-скобок = Список<Целое>()
|
|
58
52
|
уникальные-тексты-лексем = Словарь<Текст, Текст>()
|
|
59
53
|
|
|
60
|
-
|
|
54
|
+
лексема`` = следующая-лексема()
|
|
61
55
|
}
|
|
62
56
|
|
|
63
57
|
функция предпросмотр(анализатор: функция(): ДаНет): ДаНет
|
|
64
58
|
{
|
|
65
|
-
|
|
59
|
+
конст сохран-лексема = лексема
|
|
60
|
+
конст сохран-текущая-позиция = текущая-позиция
|
|
61
|
+
конст сохран-баланс-фигурных-скобок = баланс-фигурных-скобок
|
|
62
|
+
пусть сохран-стек-баланса-фигурных-скобок: Список<Целое>? = пусто
|
|
63
|
+
если стек-баланса-фигурных-скобок.количество > 0
|
|
64
|
+
{
|
|
65
|
+
сохран-стек-баланса-фигурных-скобок = Список<Целое>(стек-баланса-фигурных-скобок)
|
|
66
|
+
}
|
|
67
|
+
результат = анализатор()
|
|
68
|
+
лексема = сохран-лексема
|
|
69
|
+
текущая-позиция = сохран-текущая-позиция
|
|
70
|
+
баланс-фигурных-скобок = сохран-баланс-фигурных-скобок
|
|
71
|
+
если сохран-стек-баланса-фигурных-скобок != пусто
|
|
72
|
+
{
|
|
73
|
+
стек-баланса-фигурных-скобок = сохран-стек-баланса-фигурных-скобок
|
|
74
|
+
}
|
|
75
|
+
иначе
|
|
76
|
+
{
|
|
77
|
+
стек-баланса-фигурных-скобок.очистить()
|
|
78
|
+
}
|
|
66
79
|
}
|
|
67
80
|
|
|
68
|
-
функция
|
|
81
|
+
функция пробный-анализ<Т>(анализатор: функция(): Т?): Т?
|
|
69
82
|
{
|
|
70
|
-
|
|
83
|
+
конст сохран-лексема = лексема
|
|
84
|
+
конст сохран-текущая-позиция = текущая-позиция
|
|
85
|
+
конст сохран-баланс-фигурных-скобок = баланс-фигурных-скобок
|
|
86
|
+
пусть сохран-стек-баланса-фигурных-скобок: Список<Целое>? = пусто
|
|
87
|
+
если стек-баланса-фигурных-скобок.количество > 0
|
|
88
|
+
{
|
|
89
|
+
сохран-стек-баланса-фигурных-скобок = Список<Целое>(стек-баланса-фигурных-скобок)
|
|
90
|
+
}
|
|
91
|
+
результат = анализатор()
|
|
92
|
+
если результат == пусто
|
|
93
|
+
{
|
|
94
|
+
лексема = сохран-лексема
|
|
95
|
+
текущая-позиция = сохран-текущая-позиция
|
|
96
|
+
баланс-фигурных-скобок = сохран-баланс-фигурных-скобок
|
|
97
|
+
если сохран-стек-баланса-фигурных-скобок != пусто
|
|
98
|
+
{
|
|
99
|
+
стек-баланса-фигурных-скобок = сохран-стек-баланса-фигурных-скобок
|
|
100
|
+
}
|
|
101
|
+
иначе
|
|
102
|
+
{
|
|
103
|
+
стек-баланса-фигурных-скобок.очистить()
|
|
104
|
+
}
|
|
105
|
+
}
|
|
71
106
|
}
|
|
72
107
|
|
|
73
108
|
функция следующая-лексема(): Лексема
|
|
@@ -239,17 +274,8 @@
|
|
|
239
274
|
}
|
|
240
275
|
либо "`"
|
|
241
276
|
{
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
текущая-позиция += 1
|
|
245
|
-
прочитать-однострочный-комментарий()
|
|
246
|
-
вид-лексемы = ВидЛексемы.комментарий-однострочный
|
|
247
|
-
}
|
|
248
|
-
иначе
|
|
249
|
-
{
|
|
250
|
-
текущая-позиция += 1
|
|
251
|
-
вид-лексемы = ВидЛексемы.знак-обратная-кавычка
|
|
252
|
-
}
|
|
277
|
+
текущая-позиция += 1
|
|
278
|
+
вид-лексемы = ВидЛексемы.знак-обратная-кавычка
|
|
253
279
|
}
|
|
254
280
|
либо "/"
|
|
255
281
|
{
|
|
@@ -267,17 +293,9 @@
|
|
|
267
293
|
иначе если текст.символ-по-позиции(текущая-позиция + 1) == "*"
|
|
268
294
|
{
|
|
269
295
|
текущая-позиция += 2
|
|
270
|
-
|
|
271
|
-
{
|
|
272
|
-
конст символ = текст.символ-по-позиции(текущая-позиция)
|
|
273
|
-
если символ == "*" и текст.символ-по-позиции(текущая-позиция + 1) == "/"
|
|
274
|
-
{
|
|
275
|
-
текущая-позиция += 2
|
|
276
|
-
прервать цикл
|
|
277
|
-
}
|
|
278
|
-
текущая-позиция += 1
|
|
279
|
-
}
|
|
296
|
+
пусть р = прочитать-многострочный-комментарий()
|
|
280
297
|
вид-лексемы = ВидЛексемы.комментарий-многострочный
|
|
298
|
+
незавершённая = не р
|
|
281
299
|
}
|
|
282
300
|
иначе
|
|
283
301
|
{
|
|
@@ -438,12 +456,7 @@
|
|
|
438
456
|
{
|
|
439
457
|
пусть р = прочитать-имя-в-кавычках()
|
|
440
458
|
вид-лексемы = ВидЛексемы.имя-в-кавычках
|
|
441
|
-
незавершённая = не
|
|
442
|
-
}
|
|
443
|
-
иначе если это-начало-имени(текст.символ-по-позиции(текущая-позиция + 1))
|
|
444
|
-
{
|
|
445
|
-
прочитать-имя()
|
|
446
|
-
вид-лексемы = ВидЛексемы.имя
|
|
459
|
+
незавершённая = не р
|
|
447
460
|
}
|
|
448
461
|
иначе
|
|
449
462
|
{
|
|
@@ -488,7 +501,7 @@
|
|
|
488
501
|
{
|
|
489
502
|
пусть р = прочитать-имя-в-кавычках()
|
|
490
503
|
вид-лексемы = ВидЛексемы.имя-в-кавычках
|
|
491
|
-
незавершённая = не
|
|
504
|
+
незавершённая = не р
|
|
492
505
|
}
|
|
493
506
|
либо *
|
|
494
507
|
{
|
|
@@ -512,44 +525,15 @@
|
|
|
512
525
|
}
|
|
513
526
|
иначе
|
|
514
527
|
{
|
|
515
|
-
текст-лексемы =
|
|
528
|
+
текст-лексемы = существующий
|
|
516
529
|
}
|
|
517
530
|
}
|
|
518
531
|
лексема = Лексема(вид-лексемы, текст-лексемы, позиция-начала, незавершённая)
|
|
519
532
|
результат = лексема
|
|
520
533
|
}
|
|
521
534
|
|
|
522
|
-
скрытая функция
|
|
523
|
-
безусловно-восстановить-состояние: ДаНет): ДаНет
|
|
535
|
+
скрытая функция фигурная-скобка-оканчивает-шаблон-текста(): ДаНет
|
|
524
536
|
{
|
|
525
|
-
конст сохран-лексема = лексема
|
|
526
|
-
конст сохран-текущая-позиция = текущая-позиция
|
|
527
|
-
конст сохран-баланс-фигурных-скобок = баланс-фигурных-скобок
|
|
528
|
-
пусть сохран-стек-баланса-фигурных-скобок: Список<Целое>? = пусто
|
|
529
|
-
если стек-баланса-фигурных-скобок.количество > 0
|
|
530
|
-
{
|
|
531
|
-
сохран-стек-баланса-фигурных-скобок = Список<Целое>(стек-баланса-фигурных-скобок)
|
|
532
|
-
}
|
|
533
|
-
|
|
534
|
-
результат = анализатор()
|
|
535
|
-
|
|
536
|
-
если безусловно-восстановить-состояние или результат == нет
|
|
537
|
-
{
|
|
538
|
-
лексема = сохран-лексема
|
|
539
|
-
текущая-позиция = сохран-текущая-позиция
|
|
540
|
-
баланс-фигурных-скобок = сохран-баланс-фигурных-скобок
|
|
541
|
-
если сохран-стек-баланса-фигурных-скобок != пусто
|
|
542
|
-
{
|
|
543
|
-
стек-баланса-фигурных-скобок = сохран-стек-баланса-фигурных-скобок!
|
|
544
|
-
}
|
|
545
|
-
иначе
|
|
546
|
-
{
|
|
547
|
-
стек-баланса-фигурных-скобок.очистить()
|
|
548
|
-
}
|
|
549
|
-
}
|
|
550
|
-
}
|
|
551
|
-
|
|
552
|
-
скрытая функция фигурная-скобка-оканчивает-шаблон-текста(): ДаНет {
|
|
553
537
|
результат = стек-баланса-фигурных-скобок.количество > 0 и баланс-фигурных-скобок == 1
|
|
554
538
|
}
|
|
555
539
|
|
|
@@ -571,9 +555,9 @@
|
|
|
571
555
|
текущая-позиция += 1
|
|
572
556
|
если кавычка == "\""
|
|
573
557
|
{
|
|
574
|
-
вид-лексемы =
|
|
575
|
-
|
|
576
|
-
ВидЛексемы.буквально-текст
|
|
558
|
+
вид-лексемы = условно(локализуемый,
|
|
559
|
+
ВидЛексемы.буквально-текст-локализуемый,
|
|
560
|
+
ВидЛексемы.буквально-текст)
|
|
577
561
|
}
|
|
578
562
|
иначе
|
|
579
563
|
{
|
|
@@ -587,9 +571,9 @@
|
|
|
587
571
|
текущая-позиция += 1
|
|
588
572
|
если кавычка == "\""
|
|
589
573
|
{
|
|
590
|
-
вид-лексемы =
|
|
591
|
-
|
|
592
|
-
ВидЛексемы.буквально-начало-шаблона-текста
|
|
574
|
+
вид-лексемы = условно(локализуемый,
|
|
575
|
+
ВидЛексемы.буквально-начало-шаблона-текста-локализуемого,
|
|
576
|
+
ВидЛексемы.буквально-начало-шаблона-текста)
|
|
593
577
|
}
|
|
594
578
|
иначе
|
|
595
579
|
{
|
|
@@ -604,13 +588,14 @@
|
|
|
604
588
|
если текущая-позиция >= позиция-конца
|
|
605
589
|
{
|
|
606
590
|
конец = текущая-позиция
|
|
607
|
-
вид-лексемы =
|
|
608
|
-
|
|
591
|
+
вид-лексемы = условно(кавычка == "\"",
|
|
592
|
+
ВидЛексемы.буквально-текст,
|
|
593
|
+
ВидЛексемы.буквально-окончание-шаблона-текста)
|
|
609
594
|
если кавычка == "\""
|
|
610
595
|
{
|
|
611
|
-
вид-лексемы =
|
|
612
|
-
|
|
613
|
-
ВидЛексемы.буквально-текст
|
|
596
|
+
вид-лексемы = условно(локализуемый,
|
|
597
|
+
ВидЛексемы.буквально-текст-локализуемый,
|
|
598
|
+
ВидЛексемы.буквально-текст)
|
|
614
599
|
}
|
|
615
600
|
иначе
|
|
616
601
|
{
|
|
@@ -668,12 +653,11 @@
|
|
|
668
653
|
если результат
|
|
669
654
|
{
|
|
670
655
|
конст является-16р-цифрой: функция(символ: Символ): ДаНет =
|
|
671
|
-
|
|
672
|
-
это-16р-цифра-кириллицы // когда с1 == "ю"
|
|
656
|
+
условно(с1 == "u", это-16ричная-цифра-латиницы, это-16ричная-цифра-кириллицы)
|
|
673
657
|
пусть н = начало + 2
|
|
674
658
|
пока н < конец
|
|
675
659
|
{
|
|
676
|
-
если не
|
|
660
|
+
если не является-16р-цифрой(текст[н])
|
|
677
661
|
{
|
|
678
662
|
результат = нет
|
|
679
663
|
прервать цикл
|
|
@@ -705,17 +689,17 @@
|
|
|
705
689
|
если первая-цифра-0 и следующий-символ == "x"
|
|
706
690
|
{
|
|
707
691
|
текущая-позиция += 2
|
|
708
|
-
прочитать-16
|
|
692
|
+
прочитать-16ричные-цифры-латиницы()
|
|
709
693
|
}
|
|
710
694
|
иначе если первая-цифра-0 и следующий-символ == "ш"
|
|
711
695
|
{
|
|
712
696
|
текущая-позиция += 2
|
|
713
|
-
прочитать-16
|
|
697
|
+
прочитать-16ричные-цифры-кириллицы()
|
|
714
698
|
}
|
|
715
699
|
иначе если первая-цифра-0 и (следующий-символ == "b" или следующий-символ == "д")
|
|
716
700
|
{
|
|
717
701
|
текущая-позиция += 2
|
|
718
|
-
прочитать-2
|
|
702
|
+
прочитать-2ичные-цифры()
|
|
719
703
|
}
|
|
720
704
|
иначе
|
|
721
705
|
{
|
|
@@ -735,7 +719,7 @@
|
|
|
735
719
|
{
|
|
736
720
|
текущая-позиция += 1
|
|
737
721
|
}
|
|
738
|
-
если не
|
|
722
|
+
если не прочитать-цифры()
|
|
739
723
|
{
|
|
740
724
|
// Ошибка: ожидается цифра
|
|
741
725
|
незавершённая = да
|
|
@@ -764,9 +748,9 @@
|
|
|
764
748
|
}
|
|
765
749
|
}
|
|
766
750
|
|
|
767
|
-
скрытая функция прочитать-16
|
|
751
|
+
скрытая функция прочитать-16ричные-цифры-латиницы(): ДаНет
|
|
768
752
|
{
|
|
769
|
-
результат = это-16
|
|
753
|
+
результат = это-16ричная-цифра-латиницы(текст.символ-по-позиции(текущая-позиция))
|
|
770
754
|
если результат
|
|
771
755
|
{
|
|
772
756
|
цикл
|
|
@@ -774,13 +758,13 @@
|
|
|
774
758
|
текущая-позиция += 1
|
|
775
759
|
}
|
|
776
760
|
повтор пока текущая-позиция < позиция-конца и
|
|
777
|
-
это-16
|
|
761
|
+
это-16ричная-цифра-латиницы(текст.символ-по-позиции(текущая-позиция))
|
|
778
762
|
}
|
|
779
763
|
}
|
|
780
764
|
|
|
781
|
-
скрытая функция прочитать-16
|
|
765
|
+
скрытая функция прочитать-16ричные-цифры-кириллицы(): ДаНет
|
|
782
766
|
{
|
|
783
|
-
результат = это-16
|
|
767
|
+
результат = это-16ричная-цифра-кириллицы(текст.символ-по-позиции(текущая-позиция))
|
|
784
768
|
если результат
|
|
785
769
|
{
|
|
786
770
|
цикл
|
|
@@ -788,13 +772,13 @@
|
|
|
788
772
|
текущая-позиция += 1
|
|
789
773
|
}
|
|
790
774
|
повтор пока текущая-позиция < позиция-конца и
|
|
791
|
-
это-16
|
|
775
|
+
это-16ричная-цифра-кириллицы(текст.символ-по-позиции(текущая-позиция))
|
|
792
776
|
}
|
|
793
777
|
}
|
|
794
778
|
|
|
795
|
-
скрытая функция прочитать-2
|
|
779
|
+
скрытая функция прочитать-2ичные-цифры(): ДаНет
|
|
796
780
|
{
|
|
797
|
-
результат = это-2
|
|
781
|
+
результат = это-2ичная-цифра(текст.символ-по-позиции(текущая-позиция))
|
|
798
782
|
если результат
|
|
799
783
|
{
|
|
800
784
|
цикл
|
|
@@ -802,7 +786,7 @@
|
|
|
802
786
|
текущая-позиция += 1
|
|
803
787
|
}
|
|
804
788
|
повтор пока текущая-позиция < позиция-конца и
|
|
805
|
-
это-2
|
|
789
|
+
это-2ичная-цифра(текст.символ-по-позиции(текущая-позиция))
|
|
806
790
|
}
|
|
807
791
|
}
|
|
808
792
|
|
|
@@ -823,19 +807,29 @@
|
|
|
823
807
|
скрытая функция прочитать-однострочный-комментарий()
|
|
824
808
|
{
|
|
825
809
|
пока текущая-позиция < позиция-конца и
|
|
826
|
-
не
|
|
810
|
+
не это-разделитель-строк(текст.символ-по-позиции(текущая-позиция))
|
|
827
811
|
{
|
|
828
812
|
текущая-позиция += 1
|
|
829
813
|
}
|
|
830
814
|
}
|
|
831
815
|
|
|
832
|
-
скрытая функция
|
|
816
|
+
скрытая функция прочитать-многострочный-комментарий(): ДаНет
|
|
833
817
|
{
|
|
834
|
-
|
|
818
|
+
пока текущая-позиция < позиция-конца
|
|
835
819
|
{
|
|
820
|
+
конст символ = текст.символ-по-позиции(текущая-позиция)
|
|
821
|
+
если символ == "*" и текст.символ-по-позиции(текущая-позиция + 1) == "/"
|
|
822
|
+
{
|
|
823
|
+
текущая-позиция += 2
|
|
824
|
+
вернуть да
|
|
825
|
+
}
|
|
836
826
|
текущая-позиция += 1
|
|
837
827
|
}
|
|
828
|
+
вернуть нет
|
|
829
|
+
}
|
|
838
830
|
|
|
831
|
+
скрытая функция прочитать-имя()
|
|
832
|
+
{
|
|
839
833
|
пусть позиция-минуса = текущая-позиция
|
|
840
834
|
пока текущая-позиция < позиция-конца и
|
|
841
835
|
это-часть-имени(текст.символ-по-позиции(текущая-позиция))
|
|
@@ -848,7 +842,7 @@
|
|
|
848
842
|
{
|
|
849
843
|
текущая-позиция += 1
|
|
850
844
|
}
|
|
851
|
-
если не
|
|
845
|
+
если не это-часть-имени(текст.символ-по-позиции(текущая-позиция))
|
|
852
846
|
{
|
|
853
847
|
текущая-позиция = позиция-минуса
|
|
854
848
|
прервать цикл
|
|
@@ -865,11 +859,6 @@
|
|
|
865
859
|
|
|
866
860
|
скрытая функция прочитать-имя-в-кавычках(): ДаНет
|
|
867
861
|
{
|
|
868
|
-
если текст.символ-по-позиции(текущая-позиция) == "~"
|
|
869
|
-
{
|
|
870
|
-
текущая-позиция += 1
|
|
871
|
-
}
|
|
872
|
-
|
|
873
862
|
текущая-позиция += 1
|
|
874
863
|
пока текущая-позиция < позиция-конца
|
|
875
864
|
{
|
|
@@ -924,21 +913,21 @@
|
|
|
924
913
|
результат = символ >= "0" и символ <= "9"
|
|
925
914
|
}
|
|
926
915
|
|
|
927
|
-
всеобщая функция это-16
|
|
916
|
+
всеобщая функция это-16ричная-цифра-латиницы(символ: Символ): ДаНет
|
|
928
917
|
{
|
|
929
918
|
результат = символ >= "0" и символ <= "9" или
|
|
930
919
|
символ >= "A" и символ <= "F" или
|
|
931
920
|
символ >= "a" и символ <= "f"
|
|
932
921
|
}
|
|
933
922
|
|
|
934
|
-
всеобщая функция это-16
|
|
923
|
+
всеобщая функция это-16ричная-цифра-кириллицы(символ: Символ): ДаНет
|
|
935
924
|
{
|
|
936
925
|
результат = символ >= "0" и символ <= "9" или
|
|
937
926
|
символ >= "А" и символ <= "Е" или
|
|
938
927
|
символ >= "а" и символ <= "е"
|
|
939
928
|
}
|
|
940
929
|
|
|
941
|
-
всеобщая функция это-2
|
|
930
|
+
всеобщая функция это-2ичная-цифра(символ: Символ): ДаНет
|
|
942
931
|
{
|
|
943
932
|
результат = символ == "0" или символ == "1"
|
|
944
933
|
}
|
|
@@ -967,20 +956,20 @@
|
|
|
967
956
|
{
|
|
968
957
|
пусть индекс = 0
|
|
969
958
|
конст длина = текст-без-кавычек.длина
|
|
970
|
-
если индекс >= длина или это-начало-имени(
|
|
959
|
+
если индекс >= длина или это-начало-имени(текст-без-кавычек.символ-по-позиции(индекс))
|
|
971
960
|
{
|
|
972
961
|
вернуть нет
|
|
973
962
|
}
|
|
974
963
|
индекс += 1
|
|
975
964
|
пока индекс < длина
|
|
976
965
|
{
|
|
977
|
-
если не (это-часть-имени(
|
|
966
|
+
если не (это-часть-имени(текст-без-кавычек.символ-по-позиции(индекс)))
|
|
978
967
|
{
|
|
979
968
|
вернуть нет
|
|
980
969
|
}
|
|
981
970
|
индекс += 1
|
|
982
971
|
}
|
|
983
|
-
если индекс == длина и
|
|
972
|
+
если индекс == длина и текст-без-кавычек.символ-по-позиции(индекс) == "-"
|
|
984
973
|
{
|
|
985
974
|
вернуть нет
|
|
986
975
|
}
|