@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.
Files changed (2) hide show
  1. package/docs/DIAGNOSTICS.md +72 -64
  2. package/package.json +2 -2
@@ -32,68 +32,76 @@
32
32
 
33
33
  - Диапазоны: `0x84xx` — parser (синтаксис, скобки), `0x88xx` — semantic (типизация, область
34
34
  видимости, структура, схема, отсутствие значения), `0x81xx` — evaluation (вычисление КМ),
35
- `0x28xx` — предупреждения (класс UNKNOWN, префикс `U`).
36
-
37
- ## Parser (`0x84xx`, префикс `P`)
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` | — | Тип выражения не соответствует `cstType` конституенты. |
48
- | `0x8417` | `invalidFilterSyntax` | — | Синтаксис `Fi`: `Fi1[D1](S1)`, `Fi1,2[D1,D2](S1)` или `Fi1,2[D3](S1)`. |
49
-
50
- ## Предупреждения (`0x28xx`, префикс `U`, не блокируют)
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
- ## Локальные переменные и область видимости (`0x88xx`, префикс `S`)
58
-
59
- | Код | Имя | `params` | Исправление |
60
- | :------- | :---------------- | :------- | :--------------------------------------------------------- |
61
- | `0x8801` | `localUndeclared` | `[name]` | Свяжи `name` квантором или объяви параметром. |
62
- | `0x8802` | `localShadowing` | `[name]` | Переименуй внутреннюю переменную `name`. |
63
- | `0x8815` | `localOutOfScope` | `[name]` | Перенеси использование `name` внутрь её области видимости. |
64
-
65
- ## Типизация и структура (`0x88xx`, префикс `S`)
66
-
67
- | Код | Имя | `params` | Исправление |
68
- | :------- | :------------------------------ | :------------------- | :--------------------------------------------------------------------------------------------------------------------------- |
69
- | `0x8803` | `typesNotEqual` | `[a, b, operator]` | Операнды `operator` должны иметь равный тип (`a` ≠ `b`). |
70
- | `0x8825` | `typesNotCompatible` | `[a, b, operator]` | Типы `a` и `b` несовместимы для `operator`. |
71
- | `0x8804` | `globalNotTyped` | `[name]` | Поставщик `name` не типизирован: добавь и проанализируй его раньше. |
72
- | `0x8805` | `invalidDecart` | `[arg]` | Аргумент `arg` оператора `×` неподходящей ступени. |
73
- | `0x8806` | `invalidBoolean` | `[arg]` | Аргумент `arg` оператора `ℬ()` неподходящей ступени. |
74
- | `0x8810` | `invalidReduce` | `[arg]` | `red(arg)` требует ступень `ℬℬ`. |
75
- | `0x8807` | `invalidTypeOperation` | `[operator, type]` | Аргумент `type` оператора `operator` (`∪`, `∈`, `D{}`, `:∈` и т.п.) должен быть множеством. |
76
- | `0x8808` | `invalidCard` | `[arg]` | `card(arg)` только над множеством. |
77
- | `0x8809` | `invalidDebool` | `[arg]` | `debool(arg)` требует ступень-множество с гарантией синглетона. |
78
- | `0x880B` | `globalFuncWithoutArgs` | `[name]` | Терм-/предикат-функция `name` вызвана без аргументов: нужен `F#[…]` / `P#[…]`. |
79
- | `0x8811` | `invalidProjectionTuple` | `[from, to]` | Проекция `Pr` только над кортежем. |
80
- | `0x8812` | `invalidProjectionSet` | `[projection, type]` | Неверная проекция `projection` над типом `type`. |
81
- | `0x8813` | `invalidEnumeration` | `[a, b]` | Элементы перечисления разной типизации (`a` `b`). |
82
- | `0x8814` | `invalidCortegeDeclare` | | Число переменных кортежа размерности `×` (напр. `∀(a,b)∈X1`). |
83
- | `0x8816` | `invalidElementPredicate` | `[a, operator, c]` | `a operator c` (`ξ∈S`) с несовместимыми ступенями: `a` тип элемента, `c` — тип множества. |
84
- | `0x8817` | `invalidEmptySetUsage` | | Бессмысленное использование `∅` (напр. `X1∪∅`). |
85
- | `0x8818` | `invalidArgsArity` | `[expected, actual]` | Неверное число аргументов функции (`expected` `actual`). |
86
- | `0x8819` | `invalidArgumentType` | `[expected, actual]` | Тип аргумента не соответствует объявлению: ожидалось `expected`, получено `actual`. |
87
- | `0x881C` | `globalStructure` | — | Некорректный домен родовой структуры (`cstType` STRUCTURED): нужна ступень-структура вроде `ℬ(X1×D2)`, а не, напр., `X1∩X1`. |
88
- | `0x8821` | `radicalUsage` | `[name]` | Радикал `name` допустим только внутри аргумента функции. |
89
- | `0x8824` | `arithmeticNotSupported` | `[type, operator]` | `type` не поддерживает арифметику `operator`: нужна ступень `Z` или `C#`. |
90
- | `0x8826` | `orderingNotSupported` | `[type, operator]` | `type` не поддерживает порядок `operator`: нужна ступень `Z` или `C#`. |
91
- | `0x8827` | `expectedLogic` | `[type]` | Нужна логическая формула, получен тип `type`. |
92
- | `0x8828` | `expectedSetexpr` | `[type]` | Нужно теоретико-множественное выражение, получен тип `type` (напр. `Logic`). |
93
- | `0x8829` | `invalidArgumentCortegeDeclare` | | Связное объявление кортежа запрещено в аргументах функции (`[(a,b)∈S1]`): используй проекции или раздельные переменные. |
94
- | `0x882A` | `invalidQuantifierDomain` | `[operator, type]` | Область квантора `operator` (`∀`/`∃`) должна быть множеством, а не `type`. |
95
-
96
- ## Фильтр `Fi` (`0x882x`, префикс `S`)
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
- ## Значение и схема (`0x88xx`, префикс `S`)
114
+ ## Значение и схема
107
115
 
108
- | Код | Имя | `params` | Исправление |
109
- | :------- | :--------------------- | :------- | :----------------------------------------------------------- |
110
- | `0x8840` | `globalNoValue` | `[name]` | Идентификатор `name` невычислим в модели. |
111
- | `0x8841` | `invalidPropertyUsage` | — | `Property` - множество использовано как вычислимое значение. |
112
- | `0x8861` | `cstEmptyDerived` | — | У выводимой конституенты пустая формула. |
113
- | `0x8862` | `definitionNotAllowed` | | У `basic`/`constant` определение не допускается. |
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
- ## Вычисление КМ (`0x81xx`, префикс `E`)
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.0",
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.5.0"
73
+ "@rsconcept/domain": "^1.6.0"
74
74
  },
75
75
  "devDependencies": {
76
76
  "@types/node": "^26.0.1",