@qrvey/formula-lang 0.8.3 → 0.8.5
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/CHANGELOG.md +10 -0
- package/dist/cjs/grammar/generated/qformula.lang.js +3 -3
- package/dist/cjs/grammar/generated/qformula.lang.js.map +1 -1
- package/dist/cjs/index.js +3 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/parser/json-parser.d.ts +2 -2
- package/dist/cjs/parser/json-parser.js +40 -17
- package/dist/cjs/parser/json-parser.js.map +1 -1
- package/dist/cjs/parser/syntax-errors.d.ts +2 -0
- package/dist/cjs/parser/syntax-errors.js +12 -8
- package/dist/cjs/parser/syntax-errors.js.map +1 -1
- package/dist/module/grammar/generated/qformula.lang.js +3 -3
- package/dist/module/grammar/generated/qformula.lang.js.map +1 -1
- package/dist/module/index.js +3 -3
- package/dist/module/index.js.map +1 -1
- package/dist/module/parser/json-parser.d.ts +2 -2
- package/dist/module/parser/json-parser.js +41 -18
- package/dist/module/parser/json-parser.js.map +1 -1
- package/dist/module/parser/syntax-errors.d.ts +2 -0
- package/dist/module/parser/syntax-errors.js +10 -7
- package/dist/module/parser/syntax-errors.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
<a name="0.8.5"></a>
|
|
2
|
+
## [0.8.5](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.8.4...v0.8.5) (2023-05-13)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* **json-parser.ts:** calculate missing arguments in a function ([6efe266](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/6efe266))
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
1
11
|
<a name="0.8.0"></a>
|
|
2
12
|
# [0.8.0](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.7.0...v0.8.0) (2023-05-09)
|
|
3
13
|
|
|
@@ -8,8 +8,8 @@ const highlight_1 = require("@lezer/highlight");
|
|
|
8
8
|
const spec_identifier = { __proto__: null, true: 16, false: 16, null: 18 };
|
|
9
9
|
const parser = lr_1.LRParser.deserialize({
|
|
10
10
|
version: 14,
|
|
11
|
-
states: "$tO]QPOOOOQO'#C`'#C`OOQO'#Cg'#CgOzQPO'#CfO!PQQO'#CiO]QPO'#CjQ!UQPOOO]QPO'#CpOOQO'#C_'#C_O!dQPO,59QO!kQPO,59TOOQO,59U,59UO]QPO,59WO]QPO,59WO]QPO,59WO!pQPO,59[O#RQPO'#CyOOQO'#Ch'#ChO#gQPO1G.lOOQO1G.o1G.oOOQO1G.r1G.rO#}QPO1G.rO$XQPO1G.rOOQO1G.v1G.vO
|
|
12
|
-
stateData: "%
|
|
11
|
+
states: "$tO]QPOOOOQO'#C`'#C`OOQO'#Cg'#CgOzQPO'#CfO!PQQO'#CiO]QPO'#CjQ!UQPOOO]QPO'#CpOOQO'#C_'#C_O!dQPO,59QO!kQPO,59TOOQO,59U,59UO]QPO,59WO]QPO,59WO]QPO,59WO!pQPO,59[O#RQPO'#CyOOQO'#Ch'#ChO#gQPO1G.lOOQO1G.o1G.oOOQO1G.r1G.rO#}QPO1G.rO$XQPO1G.rOOQO1G.v1G.vO]QPO'#CqO$cQPO,59eOOQO7+$W7+$WO$kQPO,59]OOQO-E6o-E6o",
|
|
12
|
+
stateData: "%X~OhOSiOSPOS~OTPOUPOVPOWPOXPO_TOjQOlVOpSO~OlXO~OqYO~O_^Oa[Ob]Oc]O~OkmP~P]OocO~O_^Oa[Ob]Oc]OkgO~O_^Oa[Ob]Oc]OnhOkmX~OkjO~Oa[O_`if`ik`in`i~Ob`ic`i~P#lOb]Oc]O~P#lOnhOkma~O_^Oa[Ob]Oc]Okeanea~OUVPhijb~",
|
|
13
13
|
goto: "!ynPPPo!XPPPPP!X!c!m!X!XP!XPPP!X!pPPPPPPP!vQUOQZTQ_VQ`XQd[Qe]Qf^RkhaWOTVX[]^haROTVX[]^hRbXQi`RliRaX",
|
|
14
14
|
nodeNames: "⚠ LineComment Program Expression Value Number Date String Boolean Null Function FunctionIdentifier FunctionArguments Variable UnaryExpression ArithOp BinaryExpression LogicOp ArithOp ArithOp ParenthesizedExpression",
|
|
15
15
|
maxTerm: 33,
|
|
@@ -19,7 +19,7 @@ const parser = lr_1.LRParser.deserialize({
|
|
|
19
19
|
tokenizers: [0, 1],
|
|
20
20
|
topRules: { "Program": [0, 2] },
|
|
21
21
|
specialized: [{ term: 26, get: value => spec_identifier[value] || -1 }],
|
|
22
|
-
tokenPrec:
|
|
22
|
+
tokenPrec: 185
|
|
23
23
|
});
|
|
24
24
|
const QFormulaHighlightConfig = {
|
|
25
25
|
parser: parser.configure({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qformula.lang.js","sourceRoot":"","sources":["../../../../src/grammar/generated/qformula.lang.js"],"names":[],"mappings":";;;AAAA,kCAAqC;AACrC,mDAAmE;AACnE,gDAAmD;AAEnD,8EAA8E;AAC9E,MAAM,eAAe,GAAG,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,EAAE,EAAE,KAAK,EAAC,EAAE,EAAE,IAAI,EAAC,EAAE,EAAC,CAAC;AACpE,MAAM,MAAM,GAAG,aAAQ,CAAC,WAAW,CAAC;IAClC,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"qformula.lang.js","sourceRoot":"","sources":["../../../../src/grammar/generated/qformula.lang.js"],"names":[],"mappings":";;;AAAA,kCAAqC;AACrC,mDAAmE;AACnE,gDAAmD;AAEnD,8EAA8E;AAC9E,MAAM,eAAe,GAAG,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,EAAE,EAAE,KAAK,EAAC,EAAE,EAAE,IAAI,EAAC,EAAE,EAAC,CAAC;AACpE,MAAM,MAAM,GAAG,aAAQ,CAAC,WAAW,CAAC;IAClC,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,4SAA4S;IACpT,SAAS,EAAE,uMAAuM;IAClN,IAAI,EAAE,qGAAqG;IAC3G,SAAS,EAAE,wNAAwN;IACnO,OAAO,EAAE,EAAE;IACX,YAAY,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC;IACnB,eAAe,EAAE,CAAC;IAClB,SAAS,EAAE,k2EAAk2E;IAC72E,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClB,QAAQ,EAAE,EAAC,SAAS,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC;IAC3B,WAAW,EAAE,CAAC,EAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC;IACrE,SAAS,EAAE,GAAG;CACf,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;QACrB,KAAK,EAAE;YACH,IAAA,qBAAS,EAAC;gBACN,OAAO,EAAE,gBAAI,CAAC,IAAI;gBAClB,MAAM,EAAE,gBAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,gBAAI,CAAC,MAAM;gBACjB,MAAM,EAAE,gBAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,gBAAI,CAAC,OAAO;gBACtB,WAAW,EAAE,gBAAI,CAAC,WAAW;gBAC7B,kBAAkB,EAAE,gBAAI,CAAC,WAAW;gBACpC,KAAK,EAAE,gBAAI,CAAC,KAAK;aACpB,CAAC;SACL;KACJ,CAAC;IACF,YAAY,EAAE;QACV,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;KAChC;CACJ,CAAC;AAMiB,0DAAuB;AAL1C,MAAM,YAAY,GAAG,qBAAU,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAKpB,oCAAY;AAJxD,SAAS,QAAQ;IACb,OAAO,IAAI,0BAAe,CAAC,YAAY,CAAC,CAAC;AAC7C,CAAC;AAEQ,4BAAQ"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -23,10 +23,10 @@ Object.defineProperty(exports, "BaseError", { enumerable: true, get: function ()
|
|
|
23
23
|
Object.defineProperty(exports, "errorAnalyzer", { enumerable: true, get: function () { return errors_1.errorAnalyzer; } });
|
|
24
24
|
function Transpile(program, engine, context) {
|
|
25
25
|
const parser = qformula_grammar_1.QFormulaLang.parser;
|
|
26
|
-
const
|
|
27
|
-
if (!topNode)
|
|
26
|
+
const tree = parser.parse(program);
|
|
27
|
+
if (!tree.topNode)
|
|
28
28
|
return;
|
|
29
|
-
const ast = (0, json_parser_1.calculateAST)(program,
|
|
29
|
+
const ast = (0, json_parser_1.calculateAST)(program, tree, context);
|
|
30
30
|
if (!ast)
|
|
31
31
|
return;
|
|
32
32
|
return (0, index_1.TranspileAST)(ast, engine, context);
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAEA,iEAA0D;AAC1D,sDAAoD;AACpD,8CAAkD;AAElD,+DAIoC;AAHhC,oHAAA,QAAQ,OAAoB;AAC5B,+GAAA,YAAY,OAAe;AAC3B,sHAAA,uBAAuB,OAAsB;AAEjD,oDAAoD;AAA3C,2GAAA,YAAY,OAAA;AACrB,2CAA4D;AAAnD,gGAAA,OAAO,OAAA;AAAE,uGAAA,cAAc,OAAA;AAChC,2CAAqE;AAA5D,sGAAA,aAAa,OAAA;AAAE,0GAAA,iBAAiB,OAAA;AACzC,4CAAkD;AAAzC,qGAAA,YAAY,OAAA;AAMrB,mCAAoD;AAA3C,mGAAA,SAAS,OAAA;AAAE,uGAAA,aAAa,OAAA;AAEjC,SAAgB,SAAS,CACrB,OAAe,EACf,MAAe,EACf,OAAwB;IAExB,MAAM,MAAM,GAAG,+BAAY,CAAC,MAAM,CAAC;IACnC,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAEA,iEAA0D;AAC1D,sDAAoD;AACpD,8CAAkD;AAElD,+DAIoC;AAHhC,oHAAA,QAAQ,OAAoB;AAC5B,+GAAA,YAAY,OAAe;AAC3B,sHAAA,uBAAuB,OAAsB;AAEjD,oDAAoD;AAA3C,2GAAA,YAAY,OAAA;AACrB,2CAA4D;AAAnD,gGAAA,OAAO,OAAA;AAAE,uGAAA,cAAc,OAAA;AAChC,2CAAqE;AAA5D,sGAAA,aAAa,OAAA;AAAE,0GAAA,iBAAiB,OAAA;AACzC,4CAAkD;AAAzC,qGAAA,YAAY,OAAA;AAMrB,mCAAoD;AAA3C,mGAAA,SAAS,OAAA;AAAE,uGAAA,aAAa,OAAA;AAEjC,SAAgB,SAAS,CACrB,OAAe,EACf,MAAe,EACf,OAAwB;IAExB,MAAM,MAAM,GAAG,+BAAY,CAAC,MAAM,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO;IAC1B,MAAM,GAAG,GAAG,IAAA,0BAAY,EAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,OAAO,IAAA,oBAAY,EAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAXD,8BAWC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Tree } from '@lezer/common';
|
|
2
2
|
import { ProgramAST, FormulaContext } from '../constants/interfaces';
|
|
3
|
-
export declare function calculateAST(program: string,
|
|
3
|
+
export declare function calculateAST(program: string, tree: Tree, context?: FormulaContext): ProgramAST | undefined;
|
|
@@ -9,8 +9,9 @@ const functions_1 = require("../functions");
|
|
|
9
9
|
const primitiveFunctions_1 = require("../utils/primitiveFunctions");
|
|
10
10
|
const PARSER_VERSION = '0.0.0';
|
|
11
11
|
const LANG_NAME = 'QrveyLang';
|
|
12
|
-
function calculateAST(program,
|
|
12
|
+
function calculateAST(program, tree, context) {
|
|
13
13
|
var _a;
|
|
14
|
+
const startNode = tree.topNode;
|
|
14
15
|
if (!startNode)
|
|
15
16
|
return;
|
|
16
17
|
const syntaxErrors = (0, syntax_errors_1.calculateNodeSyntaxErrors)(program, startNode);
|
|
@@ -114,22 +115,53 @@ function transformUnaryExpression(program, node, inference, context) {
|
|
|
114
115
|
}
|
|
115
116
|
return unaryAST;
|
|
116
117
|
}
|
|
118
|
+
function createCommonASTFromNode(program, node, inference, context) {
|
|
119
|
+
if (node.type.isError) {
|
|
120
|
+
return (0, syntax_errors_1.createUnknownValue)(node);
|
|
121
|
+
}
|
|
122
|
+
return transformNode(program, node, inference, context);
|
|
123
|
+
}
|
|
124
|
+
function getFunctionArguments(fnNode, fnIdentifier, program, inference, context) {
|
|
125
|
+
const allocatedArgs = [];
|
|
126
|
+
const args = fnNode.getChild('FunctionArguments');
|
|
127
|
+
const argsFullString = (0, utils_1.getNodeValue)(program, fnNode).slice(fnIdentifier.to - fnIdentifier.from);
|
|
128
|
+
const parenthesisIndex = argsFullString.indexOf('(');
|
|
129
|
+
if (parenthesisIndex !== -1) {
|
|
130
|
+
fnNode.cursor().iterate(({ node: fnNodeChild }) => {
|
|
131
|
+
if (fnNodeChild.name === 'FunctionArguments') {
|
|
132
|
+
return false; // Stop entering on function arguments
|
|
133
|
+
}
|
|
134
|
+
if (fnNodeChild.type.isError &&
|
|
135
|
+
fnNodeChild.from > parenthesisIndex + fnIdentifier.to) {
|
|
136
|
+
const errorNodeStart = parenthesisIndex + fnIdentifier.to + 1;
|
|
137
|
+
allocatedArgs.push((0, syntax_errors_1.createUnknownValue)({
|
|
138
|
+
from: errorNodeStart,
|
|
139
|
+
to: fnNodeChild.from,
|
|
140
|
+
}));
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
args === null || args === void 0 ? void 0 : args.cursor().iterate(({ node: argNode }) => {
|
|
145
|
+
if (argNode.name === 'Expression' || argNode.type.isError) {
|
|
146
|
+
const astNode = createCommonASTFromNode(program, argNode, inference, context);
|
|
147
|
+
if (astNode)
|
|
148
|
+
allocatedArgs.push(astNode);
|
|
149
|
+
return false; // Stop entering on function arguments
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
return allocatedArgs;
|
|
153
|
+
}
|
|
117
154
|
function transformFunctionExpression(program, node, inference, context) {
|
|
118
|
-
const args = node.getChild('FunctionArguments');
|
|
119
155
|
const fnIdentifier = node.getChild('FunctionIdentifier');
|
|
120
156
|
const fnName = (0, utils_1.getNodeValue)(program, fnIdentifier);
|
|
121
157
|
const fnString = (0, utils_1.getNodeValue)(program, node);
|
|
122
158
|
const parenthesisIsNotOpen = fnString.slice(fnName.length, fnName.length + 1) !== '(';
|
|
123
159
|
const parenthesisIsNotClosed = fnString.slice(-1) !== ')';
|
|
160
|
+
const args = getFunctionArguments(node, fnIdentifier, program, inference, context);
|
|
124
161
|
const baseNode = {
|
|
125
162
|
type: constants_1.AST_TYPES.functionCall,
|
|
126
163
|
name: (0, utils_1.getNodeValue)(program, fnIdentifier),
|
|
127
|
-
arguments: args
|
|
128
|
-
? args.getChildren('Expression').map((childNode) => {
|
|
129
|
-
const nodeResult = transformNode(program, childNode, inference, context);
|
|
130
|
-
return (nodeResult !== null && nodeResult !== void 0 ? nodeResult : createUnknownValue(childNode, (0, utils_1.getNodeValue)(program, childNode)));
|
|
131
|
-
})
|
|
132
|
-
: [],
|
|
164
|
+
arguments: args,
|
|
133
165
|
from: node.from,
|
|
134
166
|
to: node.to,
|
|
135
167
|
};
|
|
@@ -157,15 +189,6 @@ function createLiteralValue({ from, to }, dataType, value) {
|
|
|
157
189
|
primitive: dataType,
|
|
158
190
|
};
|
|
159
191
|
}
|
|
160
|
-
function createUnknownValue({ from, to }, text) {
|
|
161
|
-
return {
|
|
162
|
-
type: constants_1.AST_TYPES.unknown,
|
|
163
|
-
from,
|
|
164
|
-
to,
|
|
165
|
-
text,
|
|
166
|
-
primitive: constants_1.AST_PRIMITIVES.UNKNOWN,
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
192
|
// "MM/DD/YYYY" or "MM/DD/YYYY HH:mm:ss"
|
|
170
193
|
const DATE_REGEXP = /^([0]?\d|[1][012])[/]([0-3]?\d)[/](\d{2}|\d{4})(?:\s+(\d|[01]\d|2[0-3]):([0-5]\d):([0-5]\d))?$/;
|
|
171
194
|
function transformDateValue(program, node) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-parser.js","sourceRoot":"","sources":["../../../src/parser/json-parser.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"json-parser.js","sourceRoot":"","sources":["../../../src/parser/json-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { SyntaxNode } from '@lezer/common';
|
|
2
2
|
import { BaseError } from '../errors';
|
|
3
|
+
import { UnknownAST } from '../constants/interfaces';
|
|
3
4
|
export declare function calculateNodeSyntaxErrors(program: string, node: SyntaxNode): BaseError[];
|
|
5
|
+
export declare function createUnknownValue({ from, to }: Pick<SyntaxNode, 'from' | 'to'>, text?: string): UnknownAST;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calculateNodeSyntaxErrors = void 0;
|
|
3
|
+
exports.createUnknownValue = exports.calculateNodeSyntaxErrors = void 0;
|
|
4
4
|
const errors_1 = require("../errors");
|
|
5
5
|
const utils_1 = require("../utils");
|
|
6
6
|
const constants_1 = require("../constants");
|
|
@@ -13,17 +13,21 @@ function calculateNodeSyntaxErrors(program, node) {
|
|
|
13
13
|
if (n.type.isError) {
|
|
14
14
|
const textError = (0, utils_1.getNodeValue)(program, n);
|
|
15
15
|
if (textError !== '') {
|
|
16
|
-
errorList.push(new errors_1.UnknownTokenError(
|
|
17
|
-
type: constants_1.AST_TYPES.unknown,
|
|
18
|
-
from: n.from,
|
|
19
|
-
to: n.to,
|
|
20
|
-
text: textError,
|
|
21
|
-
primitive: constants_1.AST_PRIMITIVES.UNKNOWN,
|
|
22
|
-
}));
|
|
16
|
+
errorList.push(new errors_1.UnknownTokenError(createUnknownValue(n, textError)));
|
|
23
17
|
}
|
|
24
18
|
}
|
|
25
19
|
});
|
|
26
20
|
return errorList;
|
|
27
21
|
}
|
|
28
22
|
exports.calculateNodeSyntaxErrors = calculateNodeSyntaxErrors;
|
|
23
|
+
function createUnknownValue({ from, to }, text = '') {
|
|
24
|
+
return {
|
|
25
|
+
type: constants_1.AST_TYPES.unknown,
|
|
26
|
+
from,
|
|
27
|
+
to,
|
|
28
|
+
text,
|
|
29
|
+
primitive: constants_1.AST_PRIMITIVES.UNKNOWN,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
exports.createUnknownValue = createUnknownValue;
|
|
29
33
|
//# sourceMappingURL=syntax-errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syntax-errors.js","sourceRoot":"","sources":["../../../src/parser/syntax-errors.ts"],"names":[],"mappings":";;;AACA,sCAAyD;AACzD,oCAAwC;AACxC,4CAAyD;
|
|
1
|
+
{"version":3,"file":"syntax-errors.js","sourceRoot":"","sources":["../../../src/parser/syntax-errors.ts"],"names":[],"mappings":";;;AACA,sCAAyD;AACzD,oCAAwC;AACxC,4CAAyD;AAGzD,SAAgB,yBAAyB,CACrC,OAAe,EACf,IAAgB;IAEhB,MAAM,IAAI,GAAG,IAAA,oBAAY,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzC,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAE3B,MAAM,SAAS,GAAgB,EAAE,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACxB,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,SAAS,GAAG,IAAA,oBAAY,EAAC,OAAO,EAAE,CAAe,CAAC,CAAC;YACzD,IAAI,SAAS,KAAK,EAAE,EAAE;gBAClB,SAAS,CAAC,IAAI,CACV,IAAI,0BAAiB,CAAC,kBAAkB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAC1D,CAAC;aACL;SACJ;IACL,CAAC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACrB,CAAC;AAnBD,8DAmBC;AAED,SAAgB,kBAAkB,CAC9B,EAAE,IAAI,EAAE,EAAE,EAAmC,EAC7C,IAAI,GAAG,EAAE;IAET,OAAO;QACH,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,IAAI;QACJ,EAAE;QACF,IAAI;QACJ,SAAS,EAAE,0BAAc,CAAC,OAAO;KACpC,CAAC;AACN,CAAC;AAXD,gDAWC"}
|
|
@@ -5,8 +5,8 @@ import { styleTags, tags } from '@lezer/highlight';
|
|
|
5
5
|
const spec_identifier = { __proto__: null, true: 16, false: 16, null: 18 };
|
|
6
6
|
const parser = LRParser.deserialize({
|
|
7
7
|
version: 14,
|
|
8
|
-
states: "$tO]QPOOOOQO'#C`'#C`OOQO'#Cg'#CgOzQPO'#CfO!PQQO'#CiO]QPO'#CjQ!UQPOOO]QPO'#CpOOQO'#C_'#C_O!dQPO,59QO!kQPO,59TOOQO,59U,59UO]QPO,59WO]QPO,59WO]QPO,59WO!pQPO,59[O#RQPO'#CyOOQO'#Ch'#ChO#gQPO1G.lOOQO1G.o1G.oOOQO1G.r1G.rO#}QPO1G.rO$XQPO1G.rOOQO1G.v1G.vO
|
|
9
|
-
stateData: "%
|
|
8
|
+
states: "$tO]QPOOOOQO'#C`'#C`OOQO'#Cg'#CgOzQPO'#CfO!PQQO'#CiO]QPO'#CjQ!UQPOOO]QPO'#CpOOQO'#C_'#C_O!dQPO,59QO!kQPO,59TOOQO,59U,59UO]QPO,59WO]QPO,59WO]QPO,59WO!pQPO,59[O#RQPO'#CyOOQO'#Ch'#ChO#gQPO1G.lOOQO1G.o1G.oOOQO1G.r1G.rO#}QPO1G.rO$XQPO1G.rOOQO1G.v1G.vO]QPO'#CqO$cQPO,59eOOQO7+$W7+$WO$kQPO,59]OOQO-E6o-E6o",
|
|
9
|
+
stateData: "%X~OhOSiOSPOS~OTPOUPOVPOWPOXPO_TOjQOlVOpSO~OlXO~OqYO~O_^Oa[Ob]Oc]O~OkmP~P]OocO~O_^Oa[Ob]Oc]OkgO~O_^Oa[Ob]Oc]OnhOkmX~OkjO~Oa[O_`if`ik`in`i~Ob`ic`i~P#lOb]Oc]O~P#lOnhOkma~O_^Oa[Ob]Oc]Okeanea~OUVPhijb~",
|
|
10
10
|
goto: "!ynPPPo!XPPPPP!X!c!m!X!XP!XPPP!X!pPPPPPPP!vQUOQZTQ_VQ`XQd[Qe]Qf^RkhaWOTVX[]^haROTVX[]^hRbXQi`RliRaX",
|
|
11
11
|
nodeNames: "⚠ LineComment Program Expression Value Number Date String Boolean Null Function FunctionIdentifier FunctionArguments Variable UnaryExpression ArithOp BinaryExpression LogicOp ArithOp ArithOp ParenthesizedExpression",
|
|
12
12
|
maxTerm: 33,
|
|
@@ -16,7 +16,7 @@ const parser = LRParser.deserialize({
|
|
|
16
16
|
tokenizers: [0, 1],
|
|
17
17
|
topRules: { "Program": [0, 2] },
|
|
18
18
|
specialized: [{ term: 26, get: value => spec_identifier[value] || -1 }],
|
|
19
|
-
tokenPrec:
|
|
19
|
+
tokenPrec: 185
|
|
20
20
|
});
|
|
21
21
|
const QFormulaHighlightConfig = {
|
|
22
22
|
parser: parser.configure({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qformula.lang.js","sourceRoot":"","sources":["../../../../src/grammar/generated/qformula.lang.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEnD,8EAA8E;AAC9E,MAAM,eAAe,GAAG,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,EAAE,EAAE,KAAK,EAAC,EAAE,EAAE,IAAI,EAAC,EAAE,EAAC,CAAC;AACpE,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC;IAClC,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"qformula.lang.js","sourceRoot":"","sources":["../../../../src/grammar/generated/qformula.lang.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEnD,8EAA8E;AAC9E,MAAM,eAAe,GAAG,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,EAAE,EAAE,KAAK,EAAC,EAAE,EAAE,IAAI,EAAC,EAAE,EAAC,CAAC;AACpE,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC;IAClC,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,4SAA4S;IACpT,SAAS,EAAE,uMAAuM;IAClN,IAAI,EAAE,qGAAqG;IAC3G,SAAS,EAAE,wNAAwN;IACnO,OAAO,EAAE,EAAE;IACX,YAAY,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC;IACnB,eAAe,EAAE,CAAC;IAClB,SAAS,EAAE,k2EAAk2E;IAC72E,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClB,QAAQ,EAAE,EAAC,SAAS,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC;IAC3B,WAAW,EAAE,CAAC,EAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC;IACrE,SAAS,EAAE,GAAG;CACf,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;QACrB,KAAK,EAAE;YACH,SAAS,CAAC;gBACN,OAAO,EAAE,IAAI,CAAC,IAAI;gBAClB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,MAAM;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,OAAO;gBACtB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,kBAAkB,EAAE,IAAI,CAAC,WAAW;gBACpC,KAAK,EAAE,IAAI,CAAC,KAAK;aACpB,CAAC;SACL;KACJ,CAAC;IACF,YAAY,EAAE;QACV,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;KAChC;CACJ,CAAC;AACF,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAChE,SAAS,QAAQ;IACb,OAAO,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC;AAC7C,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/module/index.js
CHANGED
|
@@ -9,10 +9,10 @@ export { TranspileAST } from './transpiler/index';
|
|
|
9
9
|
export { BaseError, errorAnalyzer } from './errors';
|
|
10
10
|
export function Transpile(program, engine, context) {
|
|
11
11
|
const parser = QFormulaLang.parser;
|
|
12
|
-
const
|
|
13
|
-
if (!topNode)
|
|
12
|
+
const tree = parser.parse(program);
|
|
13
|
+
if (!tree.topNode)
|
|
14
14
|
return;
|
|
15
|
-
const ast = calculateAST(program,
|
|
15
|
+
const ast = calculateAST(program, tree, context);
|
|
16
16
|
if (!ast)
|
|
17
17
|
return;
|
|
18
18
|
return TranspileAST(ast, engine, context);
|
package/dist/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EACH,QAAQ,IAAI,gBAAgB,EAC5B,YAAY,IAAI,WAAW,EAC3B,uBAAuB,IAAI,kBAAkB,GAChD,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMlD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEpD,MAAM,UAAU,SAAS,CACrB,OAAe,EACf,MAAe,EACf,OAAwB;IAExB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;IACnC,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EACH,QAAQ,IAAI,gBAAgB,EAC5B,YAAY,IAAI,WAAW,EAC3B,uBAAuB,IAAI,kBAAkB,GAChD,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMlD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEpD,MAAM,UAAU,SAAS,CACrB,OAAe,EACf,MAAe,EACf,OAAwB;IAExB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO;IAC1B,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Tree } from '@lezer/common';
|
|
2
2
|
import { ProgramAST, FormulaContext } from '../constants/interfaces';
|
|
3
|
-
export declare function calculateAST(program: string,
|
|
3
|
+
export declare function calculateAST(program: string, tree: Tree, context?: FormulaContext): ProgramAST | undefined;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { AST_PRIMITIVES, AST_TYPES } from '../constants';
|
|
2
2
|
import { getNodeValue, getMonthMaxDayAllowed, isValidDate, getVariableType, getVariableContext, } from '../utils';
|
|
3
|
-
import { calculateNodeSyntaxErrors } from './syntax-errors';
|
|
3
|
+
import { calculateNodeSyntaxErrors, createUnknownValue } from './syntax-errors';
|
|
4
4
|
import { MissingParenthesisError, NotAllowedExpressionError } from '../errors';
|
|
5
5
|
import { FUNCTION_LIST, getFunctionDetail } from '../functions';
|
|
6
6
|
import { getFunctionPrimitive, primitiveIsIncluded, } from '../utils/primitiveFunctions';
|
|
7
7
|
const PARSER_VERSION = '0.0.0';
|
|
8
8
|
const LANG_NAME = 'QrveyLang';
|
|
9
|
-
export function calculateAST(program,
|
|
9
|
+
export function calculateAST(program, tree, context) {
|
|
10
10
|
var _a;
|
|
11
|
+
const startNode = tree.topNode;
|
|
11
12
|
if (!startNode)
|
|
12
13
|
return;
|
|
13
14
|
const syntaxErrors = calculateNodeSyntaxErrors(program, startNode);
|
|
@@ -110,22 +111,53 @@ function transformUnaryExpression(program, node, inference, context) {
|
|
|
110
111
|
}
|
|
111
112
|
return unaryAST;
|
|
112
113
|
}
|
|
114
|
+
function createCommonASTFromNode(program, node, inference, context) {
|
|
115
|
+
if (node.type.isError) {
|
|
116
|
+
return createUnknownValue(node);
|
|
117
|
+
}
|
|
118
|
+
return transformNode(program, node, inference, context);
|
|
119
|
+
}
|
|
120
|
+
function getFunctionArguments(fnNode, fnIdentifier, program, inference, context) {
|
|
121
|
+
const allocatedArgs = [];
|
|
122
|
+
const args = fnNode.getChild('FunctionArguments');
|
|
123
|
+
const argsFullString = getNodeValue(program, fnNode).slice(fnIdentifier.to - fnIdentifier.from);
|
|
124
|
+
const parenthesisIndex = argsFullString.indexOf('(');
|
|
125
|
+
if (parenthesisIndex !== -1) {
|
|
126
|
+
fnNode.cursor().iterate(({ node: fnNodeChild }) => {
|
|
127
|
+
if (fnNodeChild.name === 'FunctionArguments') {
|
|
128
|
+
return false; // Stop entering on function arguments
|
|
129
|
+
}
|
|
130
|
+
if (fnNodeChild.type.isError &&
|
|
131
|
+
fnNodeChild.from > parenthesisIndex + fnIdentifier.to) {
|
|
132
|
+
const errorNodeStart = parenthesisIndex + fnIdentifier.to + 1;
|
|
133
|
+
allocatedArgs.push(createUnknownValue({
|
|
134
|
+
from: errorNodeStart,
|
|
135
|
+
to: fnNodeChild.from,
|
|
136
|
+
}));
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
args === null || args === void 0 ? void 0 : args.cursor().iterate(({ node: argNode }) => {
|
|
141
|
+
if (argNode.name === 'Expression' || argNode.type.isError) {
|
|
142
|
+
const astNode = createCommonASTFromNode(program, argNode, inference, context);
|
|
143
|
+
if (astNode)
|
|
144
|
+
allocatedArgs.push(astNode);
|
|
145
|
+
return false; // Stop entering on function arguments
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
return allocatedArgs;
|
|
149
|
+
}
|
|
113
150
|
function transformFunctionExpression(program, node, inference, context) {
|
|
114
|
-
const args = node.getChild('FunctionArguments');
|
|
115
151
|
const fnIdentifier = node.getChild('FunctionIdentifier');
|
|
116
152
|
const fnName = getNodeValue(program, fnIdentifier);
|
|
117
153
|
const fnString = getNodeValue(program, node);
|
|
118
154
|
const parenthesisIsNotOpen = fnString.slice(fnName.length, fnName.length + 1) !== '(';
|
|
119
155
|
const parenthesisIsNotClosed = fnString.slice(-1) !== ')';
|
|
156
|
+
const args = getFunctionArguments(node, fnIdentifier, program, inference, context);
|
|
120
157
|
const baseNode = {
|
|
121
158
|
type: AST_TYPES.functionCall,
|
|
122
159
|
name: getNodeValue(program, fnIdentifier),
|
|
123
|
-
arguments: args
|
|
124
|
-
? args.getChildren('Expression').map((childNode) => {
|
|
125
|
-
const nodeResult = transformNode(program, childNode, inference, context);
|
|
126
|
-
return (nodeResult !== null && nodeResult !== void 0 ? nodeResult : createUnknownValue(childNode, getNodeValue(program, childNode)));
|
|
127
|
-
})
|
|
128
|
-
: [],
|
|
160
|
+
arguments: args,
|
|
129
161
|
from: node.from,
|
|
130
162
|
to: node.to,
|
|
131
163
|
};
|
|
@@ -153,15 +185,6 @@ function createLiteralValue({ from, to }, dataType, value) {
|
|
|
153
185
|
primitive: dataType,
|
|
154
186
|
};
|
|
155
187
|
}
|
|
156
|
-
function createUnknownValue({ from, to }, text) {
|
|
157
|
-
return {
|
|
158
|
-
type: AST_TYPES.unknown,
|
|
159
|
-
from,
|
|
160
|
-
to,
|
|
161
|
-
text,
|
|
162
|
-
primitive: AST_PRIMITIVES.UNKNOWN,
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
188
|
// "MM/DD/YYYY" or "MM/DD/YYYY HH:mm:ss"
|
|
166
189
|
const DATE_REGEXP = /^([0]?\d|[1][012])[/]([0-3]?\d)[/](\d{2}|\d{4})(?:\s+(\d|[01]\d|2[0-3]):([0-5]\d):([0-5]\d))?$/;
|
|
167
190
|
function transformDateValue(program, node) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-parser.js","sourceRoot":"","sources":["../../../src/parser/json-parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"json-parser.js","sourceRoot":"","sources":["../../../src/parser/json-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { SyntaxNode } from '@lezer/common';
|
|
2
2
|
import { BaseError } from '../errors';
|
|
3
|
+
import { UnknownAST } from '../constants/interfaces';
|
|
3
4
|
export declare function calculateNodeSyntaxErrors(program: string, node: SyntaxNode): BaseError[];
|
|
5
|
+
export declare function createUnknownValue({ from, to }: Pick<SyntaxNode, 'from' | 'to'>, text?: string): UnknownAST;
|
|
@@ -10,16 +10,19 @@ export function calculateNodeSyntaxErrors(program, node) {
|
|
|
10
10
|
if (n.type.isError) {
|
|
11
11
|
const textError = getNodeValue(program, n);
|
|
12
12
|
if (textError !== '') {
|
|
13
|
-
errorList.push(new UnknownTokenError(
|
|
14
|
-
type: AST_TYPES.unknown,
|
|
15
|
-
from: n.from,
|
|
16
|
-
to: n.to,
|
|
17
|
-
text: textError,
|
|
18
|
-
primitive: AST_PRIMITIVES.UNKNOWN,
|
|
19
|
-
}));
|
|
13
|
+
errorList.push(new UnknownTokenError(createUnknownValue(n, textError)));
|
|
20
14
|
}
|
|
21
15
|
}
|
|
22
16
|
});
|
|
23
17
|
return errorList;
|
|
24
18
|
}
|
|
19
|
+
export function createUnknownValue({ from, to }, text = '') {
|
|
20
|
+
return {
|
|
21
|
+
type: AST_TYPES.unknown,
|
|
22
|
+
from,
|
|
23
|
+
to,
|
|
24
|
+
text,
|
|
25
|
+
primitive: AST_PRIMITIVES.UNKNOWN,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
25
28
|
//# sourceMappingURL=syntax-errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syntax-errors.js","sourceRoot":"","sources":["../../../src/parser/syntax-errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"syntax-errors.js","sourceRoot":"","sources":["../../../src/parser/syntax-errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,yBAAyB,CACrC,OAAe,EACf,IAAgB;IAEhB,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzC,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAE3B,MAAM,SAAS,GAAgB,EAAE,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACxB,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,CAAe,CAAC,CAAC;YACzD,IAAI,SAAS,KAAK,EAAE,EAAE;gBAClB,SAAS,CAAC,IAAI,CACV,IAAI,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAC1D,CAAC;aACL;SACJ;IACL,CAAC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAC9B,EAAE,IAAI,EAAE,EAAE,EAAmC,EAC7C,IAAI,GAAG,EAAE;IAET,OAAO;QACH,IAAI,EAAE,SAAS,CAAC,OAAO;QACvB,IAAI;QACJ,EAAE;QACF,IAAI;QACJ,SAAS,EAAE,cAAc,CAAC,OAAO;KACpC,CAAC;AACN,CAAC"}
|