@artel/ru-artel-compiler 0.6.25222 → 0.6.25224

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artel/ru-artel-compiler",
3
- "version": "0.6.25222",
3
+ "version": "0.6.25224",
4
4
  "description": "*А* Артель.Компилятор (RU)",
5
5
  "author": "Nezaboodka Team <contact@nezaboodka.com>",
6
6
  "license": "LGPL-3.0-or-later",
@@ -128,8 +128,8 @@
128
128
  слово-наблюдаемый
129
129
  слово-реактивный
130
130
  слово-нереактивный
131
- слово-заменяемое
132
- слово-заменено
131
+ слово-базовый
132
+ слово-исправленный
133
133
  слово-транзакционный
134
134
  слово-асинхронный
135
135
  слово-всеобщий
@@ -56,12 +56,53 @@
56
56
 
57
57
  функция предпросмотр(анализатор: функция(): ДаНет): ДаНет
58
58
  {
59
- результат = пробный-анализ-или-предпросмотр(анализатор, безусловно-восстановить-состояние = да)
59
+ конст сохран-лексема = лексема
60
+ конст сохран-текущая-позиция = текущая-позиция
61
+ конст сохран-баланс-фигурных-скобок = баланс-фигурных-скобок
62
+ пусть сохран-стек-баланса-фигурных-скобок: Список<Целое>? = пусто
63
+ если стек-баланса-фигурных-скобок.количество > 0
64
+ {
65
+ сохран-стек-баланса-фигурных-скобок = Список<Целое>(стек-баланса-фигурных-скобок)
66
+ }
67
+ результат = анализатор()
68
+ лексема = сохран-лексема
69
+ текущая-позиция = сохран-текущая-позиция
70
+ баланс-фигурных-скобок = сохран-баланс-фигурных-скобок
71
+ если сохран-стек-баланса-фигурных-скобок != пусто
72
+ {
73
+ стек-баланса-фигурных-скобок = сохран-стек-баланса-фигурных-скобок
74
+ }
75
+ иначе
76
+ {
77
+ стек-баланса-фигурных-скобок.очистить()
78
+ }
60
79
  }
61
80
 
62
- функция пробный-анализ(анализатор: функция(): ДаНет): ДаНет
81
+ функция пробный-анализ<Т>(анализатор: функция(): Т?): Т?
63
82
  {
64
- результат = пробный-анализ-или-предпросмотр(анализатор, безусловно-восстановить-состояние = нет)
83
+ конст сохран-лексема = лексема
84
+ конст сохран-текущая-позиция = текущая-позиция
85
+ конст сохран-баланс-фигурных-скобок = баланс-фигурных-скобок
86
+ пусть сохран-стек-баланса-фигурных-скобок: Список<Целое>? = пусто
87
+ если стек-баланса-фигурных-скобок.количество > 0
88
+ {
89
+ сохран-стек-баланса-фигурных-скобок = Список<Целое>(стек-баланса-фигурных-скобок)
90
+ }
91
+ результат = анализатор()
92
+ если результат == пусто
93
+ {
94
+ лексема = сохран-лексема
95
+ текущая-позиция = сохран-текущая-позиция
96
+ баланс-фигурных-скобок = сохран-баланс-фигурных-скобок
97
+ если сохран-стек-баланса-фигурных-скобок != пусто
98
+ {
99
+ стек-баланса-фигурных-скобок = сохран-стек-баланса-фигурных-скобок
100
+ }
101
+ иначе
102
+ {
103
+ стек-баланса-фигурных-скобок.очистить()
104
+ }
105
+ }
65
106
  }
66
107
 
67
108
  функция следующая-лексема(): Лексема
@@ -496,37 +537,8 @@
496
537
  результат = лексема
497
538
  }
498
539
 
499
- скрытая функция пробный-анализ-или-предпросмотр(анализатор: функция(): ДаНет,
500
- безусловно-восстановить-состояние: ДаНет): ДаНет
540
+ скрытая функция фигурная-скобка-оканчивает-шаблон-текста(): ДаНет
501
541
  {
502
- конст сохран-лексема = лексема
503
- конст сохран-текущая-позиция = текущая-позиция
504
- конст сохран-баланс-фигурных-скобок = баланс-фигурных-скобок
505
- пусть сохран-стек-баланса-фигурных-скобок: Список<Целое>? = пусто
506
- если стек-баланса-фигурных-скобок.количество > 0
507
- {
508
- сохран-стек-баланса-фигурных-скобок = Список<Целое>(стек-баланса-фигурных-скобок)
509
- }
510
-
511
- результат = анализатор()
512
-
513
- если безусловно-восстановить-состояние или результат == нет
514
- {
515
- лексема = сохран-лексема
516
- текущая-позиция = сохран-текущая-позиция
517
- баланс-фигурных-скобок = сохран-баланс-фигурных-скобок
518
- если сохран-стек-баланса-фигурных-скобок != пусто
519
- {
520
- стек-баланса-фигурных-скобок = сохран-стек-баланса-фигурных-скобок
521
- }
522
- иначе
523
- {
524
- стек-баланса-фигурных-скобок.очистить()
525
- }
526
- }
527
- }
528
-
529
- скрытая функция фигурная-скобка-оканчивает-шаблон-текста(): ДаНет {
530
542
  результат = стек-баланса-фигурных-скобок.количество > 0 и баланс-фигурных-скобок == 1
531
543
  }
532
544
 
@@ -963,20 +975,20 @@
963
975
  {
964
976
  пусть индекс = 0
965
977
  конст длина = текст-без-кавычек.длина
966
- если индекс >= длина или это-начало-имени(текст.символ-по-позиции(индекс))
978
+ если индекс >= длина или это-начало-имени(текст-без-кавычек.символ-по-позиции(индекс))
967
979
  {
968
980
  вернуть нет
969
981
  }
970
982
  индекс += 1
971
983
  пока индекс < длина
972
984
  {
973
- если не (это-часть-имени(текст.символ-по-позиции(индекс)))
985
+ если не (это-часть-имени(текст-без-кавычек.символ-по-позиции(индекс)))
974
986
  {
975
987
  вернуть нет
976
988
  }
977
989
  индекс += 1
978
990
  }
979
- если индекс == длина и текст.символ-по-позиции(индекс) == "-"
991
+ если индекс == длина и текст-без-кавычек.символ-по-позиции(индекс) == "-"
980
992
  {
981
993
  вернуть нет
982
994
  }