@rsconcept/rstool 0.9.0 → 0.9.1
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/docs/DIAGNOSTICS.md +72 -64
- package/package.json +2 -2
package/docs/DIAGNOSTICS.md
CHANGED
|
@@ -32,68 +32,76 @@
|
|
|
32
32
|
|
|
33
33
|
- Диапазоны: `0x84xx` — parser (синтаксис, скобки), `0x88xx` — semantic (типизация, область
|
|
34
34
|
видимости, структура, схема, отсутствие значения), `0x81xx` — evaluation (вычисление КМ),
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
## Parser
|
|
38
|
-
|
|
39
|
-
| Код | Имя
|
|
40
|
-
| :------- |
|
|
41
|
-
| `0x8400` | `unknownSyntax`
|
|
42
|
-
| `0x8409` | `bracketMismatch`
|
|
43
|
-
| `0x840A` | `doubleParenthesis`
|
|
44
|
-
| `0x840B` | `missingOpenBracket`
|
|
45
|
-
| `0x840C` | `missingCloseBracket`
|
|
46
|
-
| `0x8415` | `expectedLocal`
|
|
47
|
-
| `0x8416` | `expectedType`
|
|
48
|
-
| `0x8417` | `invalidFilterSyntax`
|
|
49
|
-
|
|
50
|
-
|
|
35
|
+
- `0x2xxx` — предупреждения (не блокируют, `isCritical` возвращает `false`).
|
|
36
|
+
|
|
37
|
+
## Parser
|
|
38
|
+
|
|
39
|
+
| Код | Имя | `params` | Исправление |
|
|
40
|
+
| :------- | :----------------------- | :------------------------ | :------------------------------------------------------------------------------- |
|
|
41
|
+
| `0x8400` | `unknownSyntax` | — | Неопределённая синтаксическая ошибка: проверь операторы, скобки, идентификаторы. |
|
|
42
|
+
| `0x8409` | `bracketMismatch` | `[expected, actual]` | Закрой ожидаемой скобкой `expected` вместо `actual`. |
|
|
43
|
+
| `0x840A` | `doubleParenthesis` | — | Убери лишнюю внешнюю пару `(( … ))`. |
|
|
44
|
+
| `0x840B` | `missingOpenBracket` | `[bracket]` | Непарная закрывающая `bracket`: убери её или добавь открывающую. |
|
|
45
|
+
| `0x840C` | `missingCloseBracket` | `[bracket]` | Непарная открывающая `bracket`: убери её или добавь закрывающую. |
|
|
46
|
+
| `0x8415` | `expectedLocal` | — | Ожидалось имя локальной переменной. |
|
|
47
|
+
| `0x8416` | `expectedType` | `[expectedClass, actual]` | Несоответствие класса выражения ожидаемому. |
|
|
48
|
+
| `0x8417` | `invalidFilterSyntax` | — | Синтаксис `Fi`: `Fi1[D1](S1)`, `Fi1,2[D1,D2](S1)` или `Fi1,2[D3](S1)`. |
|
|
49
|
+
| `0x8418` | `expectedFunctionBody` | — | Нужно тело функции после `[параметры]`. |
|
|
50
|
+
| `0x8419` | `expectedExpressionBody` | — | Нужно теоретико-множественное тело функции (ТФ). |
|
|
51
|
+
| `0x841A` | `expectedLogicBody` | — | Нужно логическое тело функции. |
|
|
52
|
+
|
|
53
|
+
## Предупреждения
|
|
51
54
|
|
|
52
55
|
| Код | Имя | `params` | Исправление |
|
|
53
56
|
| :------- | :------------------- | :------- | :--------------------------------------------------------------------- |
|
|
54
57
|
| `0x2801` | `localDoubleDeclare` | `[name]` | Объявление `name` задублировано — можно игнорировать или убрать дубль. |
|
|
55
58
|
| `0x2802` | `localNotUsed` | `[name]` | Переменная `name` не используется. |
|
|
56
59
|
|
|
57
|
-
## Локальные переменные и область видимости
|
|
58
|
-
|
|
59
|
-
| Код | Имя
|
|
60
|
-
| :------- |
|
|
61
|
-
| `0x8801` | `localUndeclared`
|
|
62
|
-
| `0x8802` | `localShadowing`
|
|
63
|
-
| `0x8815` | `localOutOfScope`
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
|
70
|
-
|
|
|
71
|
-
| `
|
|
72
|
-
| `
|
|
73
|
-
| `
|
|
74
|
-
| `
|
|
75
|
-
| `
|
|
76
|
-
| `
|
|
77
|
-
| `
|
|
78
|
-
| `
|
|
79
|
-
| `
|
|
80
|
-
| `
|
|
81
|
-
| `
|
|
82
|
-
| `
|
|
83
|
-
| `
|
|
84
|
-
| `
|
|
85
|
-
| `
|
|
86
|
-
| `
|
|
87
|
-
| `
|
|
88
|
-
| `
|
|
89
|
-
| `
|
|
90
|
-
| `
|
|
91
|
-
| `
|
|
92
|
-
| `
|
|
93
|
-
| `
|
|
94
|
-
| `
|
|
95
|
-
|
|
96
|
-
|
|
60
|
+
## Локальные переменные и область видимости
|
|
61
|
+
|
|
62
|
+
| Код | Имя | `params` | Исправление |
|
|
63
|
+
| :------- | :--------------------------- | :--------------- | :-------------------------------------------------------------------------------------------- |
|
|
64
|
+
| `0x8801` | `localUndeclared` | `[name]` | Свяжи `name` квантором или объяви параметром. |
|
|
65
|
+
| `0x8802` | `localShadowing` | `[name]` | Переименуй внутреннюю переменную `name`. |
|
|
66
|
+
| `0x8815` | `localOutOfScope` | `[name]` | Перенеси использование `name` внутрь её области видимости. |
|
|
67
|
+
| `0x882E` | `localOutOfScopeParentheses` | `[name]` | Переменная `name` вне области квантора: возьми тело квантора в скобки (напр. `∀a∈S (… & …)`). |
|
|
68
|
+
| `0x882F` | `localUndeclaredInSubexpr` | `[name, domain]` | В подвыражении нет квантора для `name`; ожидается `∀(∃) name∈domain`. |
|
|
69
|
+
|
|
70
|
+
## Типизация и структура
|
|
71
|
+
|
|
72
|
+
| Код | Имя | `params` | Исправление |
|
|
73
|
+
| :------- | :--------------------------------- | :--------------------------------- | :--------------------------------------------------------------------------------------------------------------------------- |
|
|
74
|
+
| `0x8803` | `typesNotEqual` | `[a, b, operator]` | Операнды `operator` должны иметь равный тип (`a` ≠ `b`). |
|
|
75
|
+
| `0x8825` | `typesNotCompatible` | `[a, b, operator]` | Типы `a` и `b` несовместимы для `operator`. |
|
|
76
|
+
| `0x8804` | `globalNotTyped` | `[name]` | Поставщик `name` не типизирован: добавь и проанализируй его раньше. |
|
|
77
|
+
| `0x8805` | `invalidDecart` | `[arg]` | Аргумент `arg` оператора `×` неподходящей ступени. |
|
|
78
|
+
| `0x8806` | `invalidBoolean` | `[arg]` | Аргумент `arg` оператора `ℬ()` неподходящей ступени. |
|
|
79
|
+
| `0x8810` | `invalidReduce` | `[arg]` | `red(arg)` требует ступень `ℬℬ`. |
|
|
80
|
+
| `0x8807` | `invalidTypeOperation` | `[operator, type]` | Аргумент `type` оператора `operator` (`∪`, `∈`, `D{}`, `:∈` и т.п.) должен быть множеством. |
|
|
81
|
+
| `0x8808` | `invalidCard` | `[arg]` | `card(arg)` только над множеством. |
|
|
82
|
+
| `0x8809` | `invalidDebool` | `[arg]` | `debool(arg)` требует ступень-множество с гарантией синглетона. |
|
|
83
|
+
| `0x880B` | `globalFuncWithoutArgs` | `[name]` | Терм-/предикат-функция `name` вызвана без аргументов: нужен `F#[…]` / `P#[…]`. |
|
|
84
|
+
| `0x8830` | `projectionSetArgumentNotSet` | `[operator, actual]` | `Pr*` применяется к множеству; аргумент не типизирован как `ℬ(H)`. |
|
|
85
|
+
| `0x8831` | `projectionSetArgumentNotTupleSet` | `[operator, actual]` | `Pr*` требует множество кортежей `ℬ(H1×…×Hn)`; аргумент — множество не-кортежей, напр. `ℬ(X1)`. |
|
|
86
|
+
| `0x8832` | `projectionSetIndexOutOfRange` | `[operator, index, arity, actual]` | Индекс проекции `index` превышает размерность `arity` кортежа аргумента `actual`. |
|
|
87
|
+
| `0x8833` | `projectionTupleArgumentNotTuple` | `[operator, actual]` | `pr*` применяется к кортежу `H1×…×Hn`; получен другой тип. |
|
|
88
|
+
| `0x8834` | `projectionTupleIndexOutOfRange` | `[operator, index, arity, actual]` | Индекс `index` превышает размерность `arity` кортежа `actual`. |
|
|
89
|
+
| `0x8813` | `invalidEnumeration` | `[a, b]` | Элементы перечисления разной типизации (`a` ≠ `b`). |
|
|
90
|
+
| `0x8814` | `invalidCortegeDeclare` | — | Число переменных кортежа ≠ размерности `×` (напр. `∀(a,b)∈X1`). |
|
|
91
|
+
| `0x8816` | `invalidElementPredicate` | `[a, operator, c]` | `a operator c` (`ξ∈S`) с несовместимыми ступенями: `a` — тип элемента, `c` — тип множества. |
|
|
92
|
+
| `0x8817` | `invalidEmptySetUsage` | — | Бессмысленное использование `∅` (напр. `X1∪∅`). |
|
|
93
|
+
| `0x8818` | `invalidArgsArity` | `[expected, actual]` | Неверное число аргументов функции (`expected` ≠ `actual`). |
|
|
94
|
+
| `0x8819` | `invalidArgumentType` | `[expected, actual]` | Тип аргумента не соответствует объявлению: ожидалось `expected`, получено `actual`. |
|
|
95
|
+
| `0x881C` | `globalStructure` | — | Некорректный домен родовой структуры (`cstType` STRUCTURED): нужна ступень-структура вроде `ℬ(X1×D2)`, а не, напр., `X1∩X1`. |
|
|
96
|
+
| `0x8821` | `radicalUsage` | `[name]` | Радикал `name` допустим только внутри аргумента функции. |
|
|
97
|
+
| `0x8824` | `arithmeticNotSupported` | `[type, operator]` | `type` не поддерживает арифметику `operator`: нужна ступень `Z` или `C#`. |
|
|
98
|
+
| `0x8826` | `orderingNotSupported` | `[type, operator]` | `type` не поддерживает порядок `operator`: нужна ступень `Z` или `C#`. |
|
|
99
|
+
| `0x8827` | `expectedLogic` | `[type]` | Нужна логическая формула, получен тип `type`. |
|
|
100
|
+
| `0x8828` | `expectedSetexpr` | `[type]` | Нужно теоретико-множественное выражение, получен тип `type` (напр. `Logic`). |
|
|
101
|
+
| `0x8829` | `invalidArgumentCortegeDeclare` | — | Связное объявление кортежа запрещено в аргументах функции (`[(a,b)∈S1]`): используй проекции или раздельные переменные. |
|
|
102
|
+
| `0x882A` | `invalidQuantifierDomain` | `[operator, type]` | Область квантора `operator` (`∀`/`∃`) должна быть множеством, а не `type`. |
|
|
103
|
+
|
|
104
|
+
## Фильтр `Fi`
|
|
97
105
|
|
|
98
106
|
| Код | Имя | `params` | Исправление |
|
|
99
107
|
| :------- | :---------------------------- | :----------------------------------- | :------------------------------------------------------------------------------------ |
|
|
@@ -103,16 +111,16 @@
|
|
|
103
111
|
| `0x882C` | `invalidFilterIndex` | `[operator, actual, index, arity]` | Индекс проекции `index` превышает арность кортежа `arity` аргумента `actual`. |
|
|
104
112
|
| `0x882D` | `invalidFilterBooleanEchelon` | `[operator, actual, expected]` | У параметра `Fi` недостаёт ступени ℬ: тип `actual`, `bool(actual)` дал бы `expected`. |
|
|
105
113
|
|
|
106
|
-
## Значение и схема
|
|
114
|
+
## Значение и схема
|
|
107
115
|
|
|
108
|
-
| Код | Имя | `params`
|
|
109
|
-
| :------- | :--------------------- |
|
|
110
|
-
| `0x8840` | `globalNoValue` | `[name]`
|
|
111
|
-
| `0x8841` | `invalidPropertyUsage` | —
|
|
112
|
-
| `0x8861` | `cstEmptyDerived` | —
|
|
113
|
-
| `0x8862` | `definitionNotAllowed` |
|
|
116
|
+
| Код | Имя | `params` | Исправление |
|
|
117
|
+
| :------- | :--------------------- | :----------------- | :-------------------------------------------------------------------------------------------------------- |
|
|
118
|
+
| `0x8840` | `globalNoValue` | `[name]` | Идентификатор `name` невычислим в модели. |
|
|
119
|
+
| `0x8841` | `invalidPropertyUsage` | — | `Property` - множество использовано как вычислимое значение. |
|
|
120
|
+
| `0x8861` | `cstEmptyDerived` | — | У выводимой конституенты пустая формула. |
|
|
121
|
+
| `0x8862` | `definitionNotAllowed` | `[cstType, alias]` | У `basic`/`constant` формула должна быть пустой; `cstType` — роль конституенты, `alias` — её обозначение. |
|
|
114
122
|
|
|
115
|
-
## Вычисление КМ
|
|
123
|
+
## Вычисление КМ
|
|
116
124
|
|
|
117
125
|
| Код | Имя | `params` | Исправление |
|
|
118
126
|
| :------- | :------------------------ | :----------------- | :--------------------------------------------------------------------- |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsconcept/rstool",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "Agent-facing library for incremental RSForm construction, RSLang analysis, diagnostics, modeling, and evaluation. Wraps @rsconcept/domain with a deterministic session contract and stdio wrapper.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "IRBorisov",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"prepublishOnly": "npm run build"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@rsconcept/domain": "^1.
|
|
73
|
+
"@rsconcept/domain": "^1.6.0"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"@types/node": "^26.0.1",
|