@qrvey/formula-lang 0.8.14-internal → 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/CHANGELOG.md +68 -0
- package/dist/cjs/constants/index.d.ts +1 -0
- package/dist/cjs/constants/index.js +1 -0
- package/dist/cjs/constants/index.js.map +1 -1
- package/dist/cjs/constants/interfaces.d.ts +3 -0
- package/dist/cjs/errors/analyzer/elasticsearch.js +5 -1
- package/dist/cjs/errors/analyzer/elasticsearch.js.map +1 -1
- package/dist/cjs/errors/analyzer/index.js +1 -2
- package/dist/cjs/errors/analyzer/index.js.map +1 -1
- package/dist/cjs/errors/definitions.d.ts +2 -2
- package/dist/cjs/errors/definitions.js.map +1 -1
- package/dist/cjs/errors/dictionary.js +1 -1
- package/dist/cjs/errors/dictionary.js.map +1 -1
- package/dist/cjs/functions/isNull.js +1 -1
- package/dist/cjs/grammar/generated/qformula.lang.js +13 -9
- package/dist/cjs/grammar/generated/qformula.lang.js.map +1 -1
- package/dist/cjs/grammar/generated/qformula.lang.terms.d.ts +19 -0
- package/dist/cjs/grammar/generated/qformula.lang.terms.js +6 -0
- package/dist/cjs/grammar/generated/qformula.lang.terms.js.map +1 -0
- package/dist/cjs/parser/formula-parser.d.ts +4 -0
- package/dist/cjs/parser/formula-parser.js +96 -0
- package/dist/cjs/parser/formula-parser.js.map +1 -0
- package/dist/cjs/parser/interfaces.d.ts +3 -0
- package/dist/cjs/parser/interfaces.js +3 -0
- package/dist/cjs/parser/interfaces.js.map +1 -0
- package/dist/cjs/parser/json-parser.js +19 -75
- package/dist/cjs/parser/json-parser.js.map +1 -1
- package/dist/cjs/transpiler/columnTranspilation.js +2 -3
- package/dist/cjs/transpiler/columnTranspilation.js.map +1 -1
- package/dist/cjs/transpiler/index.js +11 -4
- package/dist/cjs/transpiler/index.js.map +1 -1
- package/dist/cjs/utils/elasticsearch/index.js +1 -1
- package/dist/cjs/utils/elasticsearch/scripts.d.ts +1 -1
- package/dist/cjs/utils/elasticsearch/scripts.js +2 -2
- package/dist/cjs/utils/index.d.ts +1 -0
- package/dist/cjs/utils/index.js +1 -0
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/isAColumn.d.ts +2 -2
- package/dist/cjs/utils/isAColumn.js +1 -1
- package/dist/cjs/utils/isAColumn.js.map +1 -1
- package/dist/cjs/utils/isDateParam.d.ts +1 -1
- package/dist/cjs/utils/isDateParam.js.map +1 -1
- package/dist/cjs/utils/isLongLiteralNumber.d.ts +1 -0
- package/dist/cjs/utils/isLongLiteralNumber.js +11 -0
- package/dist/cjs/utils/isLongLiteralNumber.js.map +1 -0
- package/dist/cjs/utils/isNumberParam.d.ts +1 -1
- package/dist/cjs/utils/isNumberParam.js.map +1 -1
- package/dist/cjs/utils/isStringParam.d.ts +1 -1
- package/dist/cjs/utils/isStringParam.js.map +1 -1
- package/dist/cjs/utils/sql/scripts.js +1 -1
- package/dist/module/constants/index.d.ts +1 -0
- package/dist/module/constants/index.js +1 -0
- package/dist/module/constants/index.js.map +1 -1
- package/dist/module/constants/interfaces.d.ts +3 -0
- package/dist/module/errors/analyzer/elasticsearch.js +5 -1
- package/dist/module/errors/analyzer/elasticsearch.js.map +1 -1
- package/dist/module/errors/analyzer/index.js +1 -2
- package/dist/module/errors/analyzer/index.js.map +1 -1
- package/dist/module/errors/definitions.d.ts +2 -2
- package/dist/module/errors/definitions.js.map +1 -1
- package/dist/module/errors/dictionary.js +1 -1
- package/dist/module/errors/dictionary.js.map +1 -1
- package/dist/module/functions/isNull.js +1 -1
- package/dist/module/grammar/generated/qformula.lang.js +13 -9
- package/dist/module/grammar/generated/qformula.lang.js.map +1 -1
- package/dist/module/grammar/generated/qformula.lang.terms.d.ts +19 -0
- package/dist/module/grammar/generated/qformula.lang.terms.js +3 -0
- package/dist/module/grammar/generated/qformula.lang.terms.js.map +1 -0
- package/dist/module/parser/formula-parser.d.ts +4 -0
- package/dist/module/parser/formula-parser.js +92 -0
- package/dist/module/parser/formula-parser.js.map +1 -0
- package/dist/module/parser/interfaces.d.ts +3 -0
- package/dist/module/parser/interfaces.js +2 -0
- package/dist/module/parser/interfaces.js.map +1 -0
- package/dist/module/parser/json-parser.js +21 -77
- package/dist/module/parser/json-parser.js.map +1 -1
- package/dist/module/transpiler/columnTranspilation.js +1 -2
- package/dist/module/transpiler/columnTranspilation.js.map +1 -1
- package/dist/module/transpiler/index.js +13 -6
- package/dist/module/transpiler/index.js.map +1 -1
- package/dist/module/utils/elasticsearch/index.js +2 -2
- package/dist/module/utils/elasticsearch/scripts.d.ts +1 -1
- package/dist/module/utils/elasticsearch/scripts.js +1 -1
- package/dist/module/utils/index.d.ts +1 -0
- package/dist/module/utils/index.js +1 -0
- package/dist/module/utils/index.js.map +1 -1
- package/dist/module/utils/isAColumn.d.ts +2 -2
- package/dist/module/utils/isAColumn.js +1 -1
- package/dist/module/utils/isAColumn.js.map +1 -1
- package/dist/module/utils/isDateParam.d.ts +1 -1
- package/dist/module/utils/isDateParam.js.map +1 -1
- package/dist/module/utils/isLongLiteralNumber.d.ts +1 -0
- package/dist/module/utils/isLongLiteralNumber.js +7 -0
- package/dist/module/utils/isLongLiteralNumber.js.map +1 -0
- package/dist/module/utils/isNumberParam.d.ts +1 -1
- package/dist/module/utils/isNumberParam.js.map +1 -1
- package/dist/module/utils/isStringParam.d.ts +1 -1
- package/dist/module/utils/isStringParam.js.map +1 -1
- package/dist/module/utils/sql/scripts.js +1 -1
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,71 @@
|
|
|
1
|
+
<a name="0.9.1"></a>
|
|
2
|
+
## [0.9.1](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.9.0...v0.9.1) (2023-05-31)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* **datedif:** datedif with Y, sign must be <= ([0ed55b2](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/0ed55b2))
|
|
8
|
+
* **long number:** long number 2^63 show error ([e836491](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/e836491))
|
|
9
|
+
* **long number:** long number for ElasticSearch ([6fe8051](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/6fe8051))
|
|
10
|
+
* **null_pointer:** analyzen Elasticsearch null_pointer_exceptin ([496821f](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/496821f))
|
|
11
|
+
* **sonar:** fix sonar recomendations ([30eea3c](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/30eea3c))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
<a name="0.9.0"></a>
|
|
16
|
+
# [0.9.0](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.8.12...v0.9.0) (2023-05-29)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Bug Fixes
|
|
20
|
+
|
|
21
|
+
* **unknown error:** remove Unknown error, not needed ([4a5cd9b](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/4a5cd9b))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### Features
|
|
25
|
+
|
|
26
|
+
* **ifnull:** add if null function ([3dd6e7f](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/3dd6e7f))
|
|
27
|
+
* **ifnull:** add support of null in dummy data ([79b3846](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/79b3846))
|
|
28
|
+
* **ifnull:** add validation of data types and refactor ([026b86b](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/026b86b))
|
|
29
|
+
* **isnull:** add argument index to InvalidArgumentError ([c037909](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/c037909))
|
|
30
|
+
* **isnull:** add error when the arguments does not have the same data type ([acc7294](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/acc7294))
|
|
31
|
+
* **isnull:** add validations to only allow column as value and no columns in the replacement ([4894bc2](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/4894bc2))
|
|
32
|
+
* **isnull:** fix function description ([2d83660](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/2d83660))
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
<a name="0.8.12"></a>
|
|
37
|
+
## [0.8.12](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.8.11...v0.8.12) (2023-05-29)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
### Bug Fixes
|
|
41
|
+
|
|
42
|
+
* **value:** fix null validation when value 0 is pass it ([7af8bd6](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/7af8bd6))
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<a name="0.8.11"></a>
|
|
47
|
+
## [0.8.11](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.8.10...v0.8.11) (2023-05-24)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
### Bug Fixes
|
|
51
|
+
|
|
52
|
+
* **getvaluees:** fix get_value of columns in ES ([ab68e6c](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/ab68e6c))
|
|
53
|
+
* **if:** if function third param mandatory ([fd14c2b](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/fd14c2b))
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
<a name="0.8.10"></a>
|
|
58
|
+
## [0.8.10](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.8.9...v0.8.10) (2023-05-24)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
### Bug Fixes
|
|
62
|
+
|
|
63
|
+
* **conditionals:** accept only boolean expressio in first argument ([48ceb27](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/48ceb27))
|
|
64
|
+
* **ifs:** fix IF/IFS function args ([c34ef71](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/c34ef71))
|
|
65
|
+
* **redshift diff:** fix datedif with Y (year) in redshift ([da95ef9](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/da95ef9))
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
1
69
|
<a name="0.8.9"></a>
|
|
2
70
|
## [0.8.9](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.8.8...v0.8.9) (2023-05-19)
|
|
3
71
|
|
|
@@ -8,6 +8,7 @@ export declare enum RESPONSE_LEVEL {
|
|
|
8
8
|
}
|
|
9
9
|
export declare enum AST_TYPES {
|
|
10
10
|
program = "Program",
|
|
11
|
+
parenthesisExpression = "ParenthesisExpression",
|
|
11
12
|
binaryExpression = "BinaryExpression",
|
|
12
13
|
unaryExpression = "UnaryExpression",
|
|
13
14
|
functionCall = "FunctionCall",
|
|
@@ -14,6 +14,7 @@ var RESPONSE_LEVEL;
|
|
|
14
14
|
var AST_TYPES;
|
|
15
15
|
(function (AST_TYPES) {
|
|
16
16
|
AST_TYPES["program"] = "Program";
|
|
17
|
+
AST_TYPES["parenthesisExpression"] = "ParenthesisExpression";
|
|
17
18
|
AST_TYPES["binaryExpression"] = "BinaryExpression";
|
|
18
19
|
AST_TYPES["unaryExpression"] = "UnaryExpression";
|
|
19
20
|
AST_TYPES["functionCall"] = "FunctionCall";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";;;AAAA,IAAY,OAIX;AAJD,WAAY,OAAO;IACf,0CAA+B,CAAA;IAC/B,kCAAuB,CAAA;IACvB,gCAAqB,CAAA;AACzB,CAAC,EAJW,OAAO,GAAP,eAAO,KAAP,eAAO,QAIlB;AAED,IAAY,cAEX;AAFD,WAAY,cAAc;IACtB,qCAAmB,CAAA;AACvB,CAAC,EAFW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAEzB;AAED,IAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";;;AAAA,IAAY,OAIX;AAJD,WAAY,OAAO;IACf,0CAA+B,CAAA;IAC/B,kCAAuB,CAAA;IACvB,gCAAqB,CAAA;AACzB,CAAC,EAJW,OAAO,GAAP,eAAO,KAAP,eAAO,QAIlB;AAED,IAAY,cAEX;AAFD,WAAY,cAAc;IACtB,qCAAmB,CAAA;AACvB,CAAC,EAFW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAEzB;AAED,IAAY,SAWX;AAXD,WAAY,SAAS;IACjB,gCAAmB,CAAA;IACnB,4DAA+C,CAAA;IAC/C,kDAAqC,CAAA;IACrC,gDAAmC,CAAA;IACnC,0CAA6B,CAAA;IAC7B,kCAAqB,CAAA;IACrB,8BAAiB,CAAA;IACjB,4BAAe,CAAA;IACf,gCAAmB,CAAA;IACnB,gCAAmB,CAAA;AACvB,CAAC,EAXW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAWpB;AAED,IAAY,cAMX;AAND,WAAY,cAAc;IACtB,mCAAiB,CAAA;IACjB,+BAAa,CAAA;IACb,mCAAiB,CAAA;IACjB,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;AACvB,CAAC,EANW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAMzB;AAQY,QAAA,eAAe,GAA0B;IAClD,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QACrB,GAAG,EAAE,IAAI;QACT,IAAI,EAAE,IAAI;KACb;CACJ,CAAC;AAEF,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IAClC,+DAAiC,CAAA;IACjC,iEAAmC,CAAA;IACnC,4DAA8B,CAAA;AAClC,CAAC,EAJW,0BAA0B,GAA1B,kCAA0B,KAA1B,kCAA0B,QAIrC"}
|
|
@@ -70,6 +70,9 @@ export interface BinaryExpressionAST extends UnaryExpressionAST {
|
|
|
70
70
|
export interface FunctionCallAST extends CommonAST {
|
|
71
71
|
name: string;
|
|
72
72
|
arguments: Array<CommonAST>;
|
|
73
|
+
parenthesisStart: boolean;
|
|
74
|
+
parenthesisEnd: boolean;
|
|
75
|
+
formulaText: string;
|
|
73
76
|
}
|
|
74
77
|
export type ValueASTType = string | boolean | number | CommonAST[] | null | Date;
|
|
75
78
|
export interface CommonValueAST extends CommonAST {
|
|
@@ -32,8 +32,12 @@ const errorList = [
|
|
|
32
32
|
value: dictionary_1.ERROR_LIST.unknownToken,
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
|
-
regex: /Invalid int constant
|
|
35
|
+
regex: /Invalid int constant .*/,
|
|
36
36
|
value: dictionary_1.ERROR_LIST.invalidCastNumber,
|
|
37
37
|
},
|
|
38
|
+
{
|
|
39
|
+
regex: /null_pointer_exception/,
|
|
40
|
+
value: dictionary_1.ERROR_LIST.nulls,
|
|
41
|
+
},
|
|
38
42
|
];
|
|
39
43
|
//# sourceMappingURL=elasticsearch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elasticsearch.js","sourceRoot":"","sources":["../../../../src/errors/analyzer/elasticsearch.ts"],"names":[],"mappings":";;;AAAA,8CAA2C;AAE3C,SAAgB,OAAO,CAAC,QAAa;IACjC,IAAI,EACA,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GACpC,GAAG,QAAQ,CAAC;IACb,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IACxB,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IACxB,KAAK,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC;IACpB,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC;IACpD,OAAO;QACH,SAAS;QACT,WAAW;KACd,CAAC;AACN,CAAC;AAZD,0BAYC;AAED,MAAM,SAAS,GAAG;IACd;QACI,KAAK,EAAE,iDAAiD;QACxD,KAAK,EAAE,uBAAU,CAAC,YAAY;KACjC;IACD;QACI,KAAK,EAAE,mGAAmG;QAC1G,KAAK,EAAE,uBAAU,CAAC,KAAK;KAC1B;IACD;QACI,KAAK,EAAE,sCAAsC;QAC7C,KAAK,EAAE,uBAAU,CAAC,UAAU;KAC/B;IACD;QACI,KAAK,EAAE,0BAA0B;QACjC,KAAK,EAAE,uBAAU,CAAC,YAAY;KACjC;IACD;QACI,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"elasticsearch.js","sourceRoot":"","sources":["../../../../src/errors/analyzer/elasticsearch.ts"],"names":[],"mappings":";;;AAAA,8CAA2C;AAE3C,SAAgB,OAAO,CAAC,QAAa;IACjC,IAAI,EACA,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GACpC,GAAG,QAAQ,CAAC;IACb,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IACxB,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IACxB,KAAK,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC;IACpB,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC;IACpD,OAAO;QACH,SAAS;QACT,WAAW;KACd,CAAC;AACN,CAAC;AAZD,0BAYC;AAED,MAAM,SAAS,GAAG;IACd;QACI,KAAK,EAAE,iDAAiD;QACxD,KAAK,EAAE,uBAAU,CAAC,YAAY;KACjC;IACD;QACI,KAAK,EAAE,mGAAmG;QAC1G,KAAK,EAAE,uBAAU,CAAC,KAAK;KAC1B;IACD;QACI,KAAK,EAAE,sCAAsC;QAC7C,KAAK,EAAE,uBAAU,CAAC,UAAU;KAC/B;IACD;QACI,KAAK,EAAE,0BAA0B;QACjC,KAAK,EAAE,uBAAU,CAAC,YAAY;KACjC;IACD;QACI,KAAK,EAAE,yBAAyB;QAChC,KAAK,EAAE,uBAAU,CAAC,iBAAiB;KACtC;IACD;QACI,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,uBAAU,CAAC,KAAK;KAC1B;CACJ,CAAC"}
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.errorAnalyzer = void 0;
|
|
4
4
|
const constants_1 = require("../../constants");
|
|
5
5
|
const dictionary_1 = require("../dictionary");
|
|
6
|
-
const constants_2 = require("../../constants");
|
|
7
6
|
const snowflake_1 = require("./snowflake");
|
|
8
7
|
const elasticsearch_1 = require("./elasticsearch");
|
|
9
8
|
const redshift_1 = require("./redshift");
|
|
@@ -15,7 +14,7 @@ function errorAnalyzer(engine, errorObj) {
|
|
|
15
14
|
};
|
|
16
15
|
const { errorList, messageList } = info[engine](errorObj);
|
|
17
16
|
const currentError = analyzer(messageList, errorList);
|
|
18
|
-
return Object.assign({ valid: false, level:
|
|
17
|
+
return Object.assign({ valid: false, level: constants_1.RESPONSE_LEVEL.runtime, info: errorObj }, currentError);
|
|
19
18
|
}
|
|
20
19
|
exports.errorAnalyzer = errorAnalyzer;
|
|
21
20
|
function analyzer(messageList, errorList) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/errors/analyzer/index.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/errors/analyzer/index.ts"],"names":[],"mappings":";;;AAAA,+CAA0D;AAE1D,8CAA8E;AAC9E,2CAAmD;AACnD,mDAA2D;AAC3D,yCAAiD;AAEjD,SAAgB,aAAa,CACzB,MAAe,EACf,QAAiB;IAEjB,MAAM,IAAI,GAAoB;QAC1B,CAAC,mBAAO,CAAC,aAAa,CAAC,EAAE,uBAAa;QACtC,CAAC,mBAAO,CAAC,SAAS,CAAC,EAAE,mBAAS;QAC9B,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE,kBAAQ;KAC/B,CAAC;IACF,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACtD,uBACI,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,0BAAc,CAAC,OAAO,EAC7B,IAAI,EAAE,QAAQ,IACX,YAAY,EACjB;AACN,CAAC;AAjBD,sCAiBC;AAED,SAAS,QAAQ,CACb,WAA0B,EAC1B,SAA2B;IAE3B,IAAI,MAAM,GAAG,6BAAgB,CAAC,OAAO,CAAC;IACtC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5B,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC7C,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,MAAM,GAAG,6BAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
|
@@ -21,8 +21,8 @@ export declare class MissingArgumentError extends BaseError {
|
|
|
21
21
|
toString(): string;
|
|
22
22
|
}
|
|
23
23
|
export declare class MissingParenthesisError extends BaseError {
|
|
24
|
-
node: FunctionCallAST;
|
|
25
|
-
constructor(node: FunctionCallAST);
|
|
24
|
+
node: FunctionCallAST | CommonAST;
|
|
25
|
+
constructor(node: FunctionCallAST | CommonAST);
|
|
26
26
|
}
|
|
27
27
|
export declare class UnknownTokenError extends BaseError {
|
|
28
28
|
node: UnknownAST;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/errors/definitions.ts"],"names":[],"mappings":";;;AAAA,6CAA4D;AAS5D,MAAa,SAAU,SAAQ,KAAK;IAChC,YACW,IAAY,EACZ,OAAe,EACf,IAA8C;QAErD,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAQ;QACf,SAAI,GAAJ,IAAI,CAA0C;QAGrD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,QAAQ;;QACJ,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;YACzB,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;SAC1C;aAAM,IAAI,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;YAC5B,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,IAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,IAAI,EAAE,CAAC;SAC7D;aAAM,IAAI,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;YAC5B,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,IAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,IAAI,EAAE,CAAC;SAC7D;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AArBD,8BAqBC;AAED,MAAa,YAAa,SAAQ,SAAS;IACvC,YAAY,OAAO,GAAG,6BAAgB,CAAC,uBAAU,CAAC,OAAO,CAAC,CAAC,OAAO;QAC9D,KAAK,CAAC,6BAAgB,CAAC,uBAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;CACJ;AAJD,oCAIC;AAED,MAAa,oBAAqB,SAAQ,SAAS;IAC/C,YAAmB,IAAqB;QACpC,KAAK,CACD,6BAAgB,CAAC,uBAAU,CAAC,eAAe,CAAC,CAAC,IAAI,EACjD,6BAAgB,CAAC,uBAAU,CAAC,eAAe,CAAC,CAAC,OAAO,EACpD,IAAI,CACP,CAAC;QALa,SAAI,GAAJ,IAAI,CAAiB;IAMxC,CAAC;CACJ;AARD,oDAQC;AAED,MAAa,oBAAqB,SAAQ,SAAS;IAC/C,YACW,IAAqB,EACrB,SAA6B,EACpB,aAAqB;QAErC,KAAK,CACD,6BAAgB,CAAC,uBAAU,CAAC,UAAU,CAAC,CAAC,IAAI,EAC5C,6BAAgB,CAAC,uBAAU,CAAC,UAAU,CAAC,CAAC,OAAO,EAC/C,IAAI,CACP,CAAC;QARK,SAAI,GAAJ,IAAI,CAAiB;QACrB,cAAS,GAAT,SAAS,CAAoB;QACpB,kBAAa,GAAb,aAAa,CAAQ;IAOzC,CAAC;IAED,QAAQ;QACJ,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAClE,CAAC;CACJ;AAhBD,oDAgBC;AAED,MAAa,uBAAwB,SAAQ,SAAS;IAClD,YAAmB,
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/errors/definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -97,7 +97,7 @@ exports.ERROR_DICTIONARY = {
|
|
|
97
97
|
code: 'OUT_OF_RANGE',
|
|
98
98
|
},
|
|
99
99
|
[ERROR_LIST.invalidCastNumber]: {
|
|
100
|
-
message: 'Invalid cast number.',
|
|
100
|
+
message: 'Invalid cast number. Could be to long to process',
|
|
101
101
|
code: 'INVALID_CAST_NUMBER',
|
|
102
102
|
},
|
|
103
103
|
[ERROR_LIST.inferredPrimitive]: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../../src/errors/dictionary.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../../src/errors/dictionary.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,7 +40,7 @@ exports.ISNULL = {
|
|
|
40
40
|
},
|
|
41
41
|
};
|
|
42
42
|
function elasticsearch(value, replacement) {
|
|
43
|
-
return `
|
|
43
|
+
return `IS_NULL_SCRIPT(${value}, ${replacement})`;
|
|
44
44
|
}
|
|
45
45
|
function sql(value, replacement) {
|
|
46
46
|
return `COALESCE(${value}, ${replacement})`;
|
|
@@ -5,20 +5,24 @@ const lr_1 = require("@lezer/lr");
|
|
|
5
5
|
const language_1 = require("@codemirror/language");
|
|
6
6
|
const highlight_1 = require("@lezer/highlight");
|
|
7
7
|
// This file was generated by lezer-generator. You probably shouldn't edit it.
|
|
8
|
-
const spec_identifier = { __proto__: null, true:
|
|
8
|
+
const spec_identifier = { __proto__: null, true: 14, false: 14 };
|
|
9
9
|
const parser = lr_1.LRParser.deserialize({
|
|
10
10
|
version: 14,
|
|
11
|
-
states: "%QO]QPOOOOQO'#
|
|
12
|
-
stateData: "%
|
|
13
|
-
goto: "#
|
|
14
|
-
nodeNames: "⚠
|
|
11
|
+
states: "%QO]QPOOOOQO'#C_'#C_OOQO'#Cf'#CfOwQPO'#CeO|QQO'#CiO]QPO'#CjQ!RQPOOO]QPO'#CqOOQO'#C^'#C^O!dQPO,59PO!kQPO,59TOOQO,59U,59UO]QPO,59WO]QPO,59WO]QPO,59WO]QPO,59WO!pQPO,59]O!wQPO'#CyOOQO'#Ch'#ChO#RQPO1G.kOOQO1G.o1G.oOOQO1G.r1G.rO#oQPO1G.rO#vQPO1G.rO#}QPO1G.rOOQO1G.w1G.wO]QPO'#CrO$iQPO,59eOOQO7+$V7+$VO$qQPO,59^OOQO-E6p-E6p",
|
|
12
|
+
stateData: "%V~OiOSjOSkOS~OSPOTPOUPOVPOZVO_TOlQOpSO~OZXO~OqYO~O_]Oa[Ob[Oc^Od_O~OWmP~P]OodO~OWiO~P!ROnjOWmX~P!ROWlO~Oa[Ob[Oc`id`ig`iW`in`i~O_`i~P#WO_]O~P#WO_]Oa[Ob[Oc^Od`ig`iW`in`i~OnjOWma~OWfanfa~P!ROTUijiklka~",
|
|
13
|
+
goto: "#OnPPo![PPPPP![!gP!r![![P![PPPP![!uPPPPPP!{QUOQZTQ`VQaXQe[Qf]Qg^Qh_RmjcWOTVX[]^_jcROTVX[]^_jRcXQkaRnkRbX",
|
|
14
|
+
nodeNames: "⚠ Program Expression Value Number Date String Boolean ParenthesisEnd Function FunctionIdentifier ParenthesisStart FunctionArguments Variable UnaryExpression ArithOp BinaryExpression ArithOp ArithOp LogicOp LogicOp ParenthesizedExpression",
|
|
15
15
|
maxTerm: 33,
|
|
16
|
-
|
|
16
|
+
nodeProps: [
|
|
17
|
+
["openedBy", 8, "ParenthesisStart"],
|
|
18
|
+
["closedBy", 11, "ParenthesisEnd"]
|
|
19
|
+
],
|
|
20
|
+
skippedNodes: [0],
|
|
17
21
|
repeatNodeCount: 1,
|
|
18
|
-
tokenData: "=T~RpXY#VYZ#zZ[#V]^#zpq#Vrs$Pxy7kyz7pz{7u{|7z|}9S}!O7z!O!P9X!P!Q:a!Q![;Q!^!_;n!_!`<O!`!a<T!c!}<]!}#O<y#P#Q=O#R#S8h#T#o<]$f$g#V#BY#BZ#V$IS$I_#V$I|$I}#z$I}$JO#z$JT$JU#V$KV$KW#V&FU&FV#V?HT?HU#V~#[
|
|
22
|
+
tokenData: "=T~RpXY#VYZ#zZ[#V]^#zpq#Vrs$Pxy7kyz7pz{7u{|7z|}9S}!O7z!O!P9X!P!Q:a!Q![;Q!^!_;n!_!`<O!`!a<T!c!}<]!}#O<y#P#Q=O#R#S8h#T#o<]$f$g#V#BY#BZ#V$IS$I_#V$I|$I}#z$I}$JO#z$JT$JU#V$KV$KW#V&FU&FV#V?HT?HU#V~#[Yi~XY#VZ[#Vpq#V$f$g#V#BY#BZ#V$IS$I_#V$JT$JU#V$KV$KW#V&FU&FV#V?HT?HU#V~$POj~~$SZOr$urs%_s!Q$u!Q!R&c!R!S6r!S![6S![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~$xVOr$urs%_s#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~%dOU~~%gRO;'S$u;'S;=`%p;=`O$u~%sWOr$urs%_s#O$u#O#P%d#P;'S$u;'S;=`&];=`<%l$u<%lO$u~&`P;=`<%l$u~&fYOr$urs%_s!P$u!P!Q'U!Q![6S![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~'X]Or$urs%_s!Q$u!Q!R(Q!R!S(Q!S!T(Q!T!U(Q!U![5d![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~(TYOr$urs%_s!P$u!P!Q(s!Q![5d![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~(vXOr$urs%_s!Q$u!Q![)c![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~)fXOr$urs%_s!Q$u!Q![*R![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~*UXOr$urs%_s!Q$u!Q![*q![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~*tXOr$urs%_s!Q$u!Q![+a![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~+dkOX$uX^-X^p$upq-Xqr$urs4gs#O$u#O#P%d#P#y$u#y#z-X#z$f$u$f$g-X$g#BY$u#BY#BZ-X#BZ$IS$u$IS$I_-X$I_$I|$u$I|$JO-X$JO$JT$u$JT$JU-X$JU$KV$u$KV$KW-X$KW&FU$u&FU&FV-X&FV;'S$u;'S;=`&]<%lO$u~-[pOX$uX^-X^p$upq-Xqr$urs%_s!Q$u!Q!R/`!R!S/`!S!T4n!T![0R![#O$u#O#P%d#P#y$u#y#z-X#z$f$u$f$g-X$g#BY$u#BY#BZ-X#BZ$IS$u$IS$I_-X$I_$I|$u$I|$JO-X$JO$JT$u$JT$JU-X$JU$KV$u$KV$KW-X$KW&FU$u&FU&FV-X&FV;'S$u;'S;=`&]<%lO$u~/cYOr$urs%_s!Q$u!Q![0R![!]0q!]#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~0UXOr$urs%_s![$u![!]0q!]#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~0tXOr$urs%_s!Q$u!Q!W1a!W#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~1dXOr$urs%_s!Q$u!Q![2P![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~2SXOr$urs%_s![$u![!]2o!]#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~2rXOr$urs%_s!Q$u!Q!W3_!W#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~3bXOr$urs%_s!Q$u!Q![3}![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~4QVOr$urs4gs#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~4nOT~U~~4qZOr$urs%_s!Q$u!Q!U0R!U![$u![!]0q!]#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~5gXOr$urs%_s!P$u!P!Q(s!Q#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~6VXOr$urs%_s!P$u!P!Q'U!Q#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~6u[Or$urs%_s!P$u!P!Q'U!Q!R6S!R!S6S!S!T6S!T#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~7pOZ~~7uOW~~7zOb~R8RV_PqQ{|8h}!O8h!O!P8h!Q![8h!c!}8h#R#S8h#T#o8hQ8mVqQ{|8h}!O8h!O!P8h!Q![8h!c!}8h#R#S8h#T#o8h~9XOn~R9^VqQ{|8h}!O8h!O!P8h!Q![9s!c!}8h#R#S8h#T#o8hR9zVSPqQ{|8h}!O8h!O!P8h!Q![9s!c!}8h#R#S9s#T#o8h~:fPa~!P!Q:i~:nSk~OY:iZ;'S:i;'S;=`:z<%lO:i~:}P;=`<%l:iR;XVSPqQ{|8h}!O8h!O!P9s!Q![;Q!c!}8h#R#S;Q#T#o8h~;sQc~!_!`;y!`!a;y~<OOc~~<TOd~~<YPc~!_!`;yR<dVqQlP{|8h}!O8h!O!P8h!Q![<]!c!}<]#R#S<]#T#o<]~=OOp~~=TOo~",
|
|
19
23
|
tokenizers: [0, 1],
|
|
20
|
-
topRules: { "Program": [0,
|
|
21
|
-
specialized: [{ term:
|
|
24
|
+
topRules: { "Program": [0, 1] },
|
|
25
|
+
specialized: [{ term: 28, get: value => spec_identifier[value] || -1 }],
|
|
22
26
|
tokenPrec: 181
|
|
23
27
|
});
|
|
24
28
|
const QFormulaHighlightConfig = {
|
|
@@ -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,EAAC,CAAC;AAC3D,MAAM,MAAM,GAAG,aAAQ,CAAC,WAAW,CAAC;IAClC,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,8TAA8T;IACtU,SAAS,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,EAAC,CAAC;AAC3D,MAAM,MAAM,GAAG,aAAQ,CAAC,WAAW,CAAC;IAClC,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,8TAA8T;IACtU,SAAS,EAAE,wMAAwM;IACnN,IAAI,EAAE,0GAA0G;IAChH,SAAS,EAAE,+OAA+O;IAC1P,OAAO,EAAE,EAAE;IACX,SAAS,EAAE;QACT,CAAC,UAAU,EAAE,CAAC,EAAC,kBAAkB,CAAC;QAClC,CAAC,UAAU,EAAE,EAAE,EAAC,gBAAgB,CAAC;KAClC;IACD,YAAY,EAAE,CAAC,CAAC,CAAC;IACjB,eAAe,EAAE,CAAC;IAClB,SAAS,EAAE,w2EAAw2E;IACn3E,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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export const spaces: 25;
|
|
2
|
+
export const newline: 26;
|
|
3
|
+
export const lineComment: 27;
|
|
4
|
+
export const Program: 1;
|
|
5
|
+
export const Expression: 2;
|
|
6
|
+
export const Value: 3;
|
|
7
|
+
export const Number: 4;
|
|
8
|
+
export const Date: 5;
|
|
9
|
+
export const String: 6;
|
|
10
|
+
export const ParenthesisEnd: 8;
|
|
11
|
+
export const Function: 9;
|
|
12
|
+
export const FunctionIdentifier: 10;
|
|
13
|
+
export const ParenthesisStart: 11;
|
|
14
|
+
export const FunctionArguments: 12;
|
|
15
|
+
export const Variable: 13;
|
|
16
|
+
export const UnaryExpression: 14;
|
|
17
|
+
export const BinaryExpression: 16;
|
|
18
|
+
export const divide: 17;
|
|
19
|
+
export const ParenthesizedExpression: 21;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ParenthesizedExpression = exports.divide = exports.BinaryExpression = exports.UnaryExpression = exports.Variable = exports.FunctionArguments = exports.ParenthesisStart = exports.FunctionIdentifier = exports.Function = exports.ParenthesisEnd = exports.String = exports.Date = exports.Number = exports.Value = exports.Expression = exports.Program = exports.lineComment = exports.newline = exports.spaces = void 0;
|
|
4
|
+
// This file was generated by lezer-generator. You probably shouldn't edit it.
|
|
5
|
+
exports.spaces = 25, exports.newline = 26, exports.lineComment = 27, exports.Program = 1, exports.Expression = 2, exports.Value = 3, exports.Number = 4, exports.Date = 5, exports.String = 6, exports.ParenthesisEnd = 8, exports.Function = 9, exports.FunctionIdentifier = 10, exports.ParenthesisStart = 11, exports.FunctionArguments = 12, exports.Variable = 13, exports.UnaryExpression = 14, exports.BinaryExpression = 16, exports.divide = 17, exports.ParenthesizedExpression = 21;
|
|
6
|
+
//# sourceMappingURL=qformula.lang.terms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qformula.lang.terms.js","sourceRoot":"","sources":["../../../../src/grammar/generated/qformula.lang.terms.js"],"names":[],"mappings":";;;AAAA,8EAA8E;AAE5E,QAAA,MAAM,GAAG,EAAE,EACX,QAAA,OAAO,GAAG,EAAE,EACZ,QAAA,WAAW,GAAG,EAAE,EAChB,QAAA,OAAO,GAAG,CAAC,EACX,QAAA,UAAU,GAAG,CAAC,EACd,QAAA,KAAK,GAAG,CAAC,EACT,QAAA,MAAM,GAAG,CAAC,EACV,QAAA,IAAI,GAAG,CAAC,EACR,QAAA,MAAM,GAAG,CAAC,EACV,QAAA,cAAc,GAAG,CAAC,EAClB,QAAA,QAAQ,GAAG,CAAC,EACZ,QAAA,kBAAkB,GAAG,EAAE,EACvB,QAAA,gBAAgB,GAAG,EAAE,EACrB,QAAA,iBAAiB,GAAG,EAAE,EACtB,QAAA,QAAQ,GAAG,EAAE,EACb,QAAA,eAAe,GAAG,EAAE,EACpB,QAAA,gBAAgB,GAAG,EAAE,EACrB,QAAA,MAAM,GAAG,EAAE,EACX,QAAA,uBAAuB,GAAG,EAAE,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { SyntaxNode } from '@lezer/common';
|
|
2
|
+
import { FormulaContext, FormulaInference, FunctionCallAST } from '../constants/interfaces';
|
|
3
|
+
import { TransformNodeFNType } from './interfaces';
|
|
4
|
+
export declare function transformFunctionExpression(program: string, node: SyntaxNode, inference: FormulaInference, context: FormulaContext | undefined, transformNodeFunction: TransformNodeFNType): FunctionCallAST;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.transformFunctionExpression = void 0;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
const syntax_errors_1 = require("./syntax-errors");
|
|
6
|
+
const primitiveFunctions_1 = require("../utils/primitiveFunctions");
|
|
7
|
+
const constants_1 = require("../constants");
|
|
8
|
+
const functions_1 = require("../functions");
|
|
9
|
+
const errors_1 = require("../errors");
|
|
10
|
+
function transformFunctionExpression(program, node, inference, context, transformNodeFunction) {
|
|
11
|
+
const fnIdentifier = node.getChild('FunctionIdentifier');
|
|
12
|
+
const fnName = (0, utils_1.getNodeValue)(program, fnIdentifier);
|
|
13
|
+
const fnString = (0, utils_1.getNodeValue)(program, node);
|
|
14
|
+
const parenthesisStart = node.getChild('ParenthesisStart');
|
|
15
|
+
const parenthesisEnd = node.getChild('ParenthesisEnd');
|
|
16
|
+
const args = getFunctionArguments(node, parenthesisStart, program, inference, context, transformNodeFunction);
|
|
17
|
+
const baseNode = {
|
|
18
|
+
type: constants_1.AST_TYPES.functionCall,
|
|
19
|
+
name: (0, utils_1.getNodeValue)(program, fnIdentifier),
|
|
20
|
+
arguments: args,
|
|
21
|
+
from: node.from,
|
|
22
|
+
to: node.to,
|
|
23
|
+
parenthesisStart: !!parenthesisStart,
|
|
24
|
+
parenthesisEnd: !!parenthesisEnd,
|
|
25
|
+
formulaText: fnString,
|
|
26
|
+
};
|
|
27
|
+
const functionExists = functions_1.FUNCTION_LIST.includes(fnName);
|
|
28
|
+
const functionDetail = functionExists
|
|
29
|
+
? (0, functions_1.getFunctionDetail)(fnName)
|
|
30
|
+
: undefined;
|
|
31
|
+
let primitive;
|
|
32
|
+
try {
|
|
33
|
+
primitive = functionDetail
|
|
34
|
+
? (0, primitiveFunctions_1.getFunctionPrimitive)(functionDetail, baseNode.arguments)
|
|
35
|
+
: constants_1.AST_PRIMITIVES.UNKNOWN;
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
primitive = constants_1.AST_PRIMITIVES.UNKNOWN;
|
|
39
|
+
inference.errorList.push(error);
|
|
40
|
+
}
|
|
41
|
+
const resultNode = Object.assign(Object.assign({}, baseNode), { primitive });
|
|
42
|
+
if (functionExists && (!parenthesisStart || !parenthesisEnd)) {
|
|
43
|
+
inference.errorList.push(new errors_1.MissingParenthesisError(Object.assign(Object.assign({}, resultNode), { from: !parenthesisStart ? resultNode.from : resultNode.to })));
|
|
44
|
+
}
|
|
45
|
+
inference.formulaFunctions.push(resultNode);
|
|
46
|
+
return resultNode;
|
|
47
|
+
}
|
|
48
|
+
exports.transformFunctionExpression = transformFunctionExpression;
|
|
49
|
+
function getFunctionArguments(fnNode, parenthesisStart, program, inference, context, transformNodeFunction) {
|
|
50
|
+
const allocatedArgs = [];
|
|
51
|
+
const args = fnNode.getChild('FunctionArguments');
|
|
52
|
+
if (parenthesisStart) {
|
|
53
|
+
allocatedArgs.push(...getFunctionStartingCommas(fnNode, program, parenthesisStart));
|
|
54
|
+
}
|
|
55
|
+
allocatedArgs.push(...extractFunctionArguments(args, fnNode, program, inference, context, transformNodeFunction));
|
|
56
|
+
return allocatedArgs;
|
|
57
|
+
}
|
|
58
|
+
function extractFunctionArguments(args, fnNode, program, inference, context, transformNodeFunction) {
|
|
59
|
+
const resultArgs = [];
|
|
60
|
+
args === null || args === void 0 ? void 0 : args.cursor().iterate(({ node: argNode }) => {
|
|
61
|
+
if (argNode.name === 'Expression' || argNode.type.isError) {
|
|
62
|
+
if (argNode.from === fnNode.to)
|
|
63
|
+
return false;
|
|
64
|
+
const astNode = createCommonASTFromNode(program, argNode, inference, context, transformNodeFunction);
|
|
65
|
+
if (astNode)
|
|
66
|
+
resultArgs.push(astNode);
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
return resultArgs;
|
|
71
|
+
}
|
|
72
|
+
function getFunctionStartingCommas(fnNode, program, parenthesisStart) {
|
|
73
|
+
const resultArgs = [];
|
|
74
|
+
fnNode === null || fnNode === void 0 ? void 0 : fnNode.cursor().iterate(({ node: fnNodeChild }) => {
|
|
75
|
+
if (fnNodeChild.name === 'FunctionArguments') {
|
|
76
|
+
return false; // Stop entering on function arguments
|
|
77
|
+
}
|
|
78
|
+
if (fnNodeChild.type.isError &&
|
|
79
|
+
(0, utils_1.getNodeValue)(program, fnNodeChild) === ',' &&
|
|
80
|
+
fnNodeChild.from > parenthesisStart.from) {
|
|
81
|
+
const errorNodeStart = parenthesisStart.from + 1;
|
|
82
|
+
resultArgs.push((0, syntax_errors_1.createUnknownValue)({
|
|
83
|
+
from: errorNodeStart,
|
|
84
|
+
to: fnNodeChild.from,
|
|
85
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
return resultArgs;
|
|
89
|
+
}
|
|
90
|
+
function createCommonASTFromNode(program, node, inference, context, transformNodeFunction) {
|
|
91
|
+
if (node.type.isError) {
|
|
92
|
+
return (0, syntax_errors_1.createUnknownValue)(node);
|
|
93
|
+
}
|
|
94
|
+
return transformNodeFunction(program, node, inference, context);
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=formula-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula-parser.js","sourceRoot":"","sources":["../../../src/parser/formula-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { SyntaxNode } from '@lezer/common';
|
|
2
|
+
import { CommonAST, FormulaContext, FormulaInference } from '../constants/interfaces';
|
|
3
|
+
export type TransformNodeFNType = (program: string, node: SyntaxNode, inference: FormulaInference, context?: FormulaContext) => CommonAST | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/parser/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -5,8 +5,8 @@ const constants_1 = require("../constants");
|
|
|
5
5
|
const utils_1 = require("../utils");
|
|
6
6
|
const syntax_errors_1 = require("./syntax-errors");
|
|
7
7
|
const errors_1 = require("../errors");
|
|
8
|
-
const functions_1 = require("../functions");
|
|
9
8
|
const primitiveFunctions_1 = require("../utils/primitiveFunctions");
|
|
9
|
+
const formula_parser_1 = require("./formula-parser");
|
|
10
10
|
const PARSER_VERSION = '0.0.0';
|
|
11
11
|
const LANG_NAME = 'QrveyLang';
|
|
12
12
|
function calculateAST(program, tree, context) {
|
|
@@ -45,8 +45,10 @@ function transformNode(program, node, inference, context) {
|
|
|
45
45
|
return transformBinaryExpression(program, node, inference, context);
|
|
46
46
|
case 'UnaryExpression':
|
|
47
47
|
return transformUnaryExpression(program, node, inference, context);
|
|
48
|
+
case 'ParenthesizedExpression':
|
|
49
|
+
return transformParenthesizedExpression(program, node, inference, context);
|
|
48
50
|
case 'Function':
|
|
49
|
-
return transformFunctionExpression(program, node, inference, context);
|
|
51
|
+
return (0, formula_parser_1.transformFunctionExpression)(program, node, inference, context, transformNode);
|
|
50
52
|
case 'Number':
|
|
51
53
|
return transformNumberValue(program, node);
|
|
52
54
|
case 'Date':
|
|
@@ -68,7 +70,7 @@ function isValidStringDateBinaryOperation(logicOperator) {
|
|
|
68
70
|
return VALID_STRING_DATE_BINARY_OPERATORS.includes(logicOperator);
|
|
69
71
|
}
|
|
70
72
|
function calculateBinaryElements(program, node, left, right) {
|
|
71
|
-
const leftPrimitive = left.primitive;
|
|
73
|
+
const leftPrimitive = left === null || left === void 0 ? void 0 : left.primitive;
|
|
72
74
|
const rightPrimitive = right === null || right === void 0 ? void 0 : right.primitive;
|
|
73
75
|
const logicOperator = node.getChild('LogicOp');
|
|
74
76
|
const arithOperator = node.getChild('ArithOp');
|
|
@@ -147,78 +149,20 @@ function transformUnaryExpression(program, node, inference, context) {
|
|
|
147
149
|
}
|
|
148
150
|
return unaryAST;
|
|
149
151
|
}
|
|
150
|
-
function
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
if (fnNodeChild.name === 'FunctionArguments') {
|
|
164
|
-
return false; // Stop entering on function arguments
|
|
165
|
-
}
|
|
166
|
-
if (fnNodeChild.type.isError &&
|
|
167
|
-
(0, utils_1.getNodeValue)(program, fnNodeChild) === ',' &&
|
|
168
|
-
fnNodeChild.from > parenthesisIndex + fnIdentifier.to) {
|
|
169
|
-
const errorNodeStart = parenthesisIndex + fnIdentifier.to + 1;
|
|
170
|
-
allocatedArgs.push((0, syntax_errors_1.createUnknownValue)({
|
|
171
|
-
from: errorNodeStart,
|
|
172
|
-
to: fnNodeChild.from,
|
|
173
|
-
}));
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
args === null || args === void 0 ? void 0 : args.cursor().iterate(({ node: argNode }) => {
|
|
178
|
-
if (argNode.name === 'Expression' || argNode.type.isError) {
|
|
179
|
-
if (argNode.from === fnNode.to)
|
|
180
|
-
return false;
|
|
181
|
-
const astNode = createCommonASTFromNode(program, argNode, inference, context);
|
|
182
|
-
if (astNode)
|
|
183
|
-
allocatedArgs.push(astNode);
|
|
184
|
-
return false; // Stop entering on function arguments
|
|
185
|
-
}
|
|
186
|
-
});
|
|
187
|
-
return allocatedArgs;
|
|
188
|
-
}
|
|
189
|
-
function transformFunctionExpression(program, node, inference, context) {
|
|
190
|
-
const fnIdentifier = node.getChild('FunctionIdentifier');
|
|
191
|
-
const fnName = (0, utils_1.getNodeValue)(program, fnIdentifier);
|
|
192
|
-
const fnString = (0, utils_1.getNodeValue)(program, node);
|
|
193
|
-
const parenthesisIsNotOpen = fnString.slice(fnName.length, fnName.length + 1) !== '(';
|
|
194
|
-
const parenthesisIsNotClosed = fnString.slice(-1) !== ')';
|
|
195
|
-
const args = getFunctionArguments(node, fnIdentifier, program, inference, context);
|
|
196
|
-
const baseNode = {
|
|
197
|
-
type: constants_1.AST_TYPES.functionCall,
|
|
198
|
-
name: (0, utils_1.getNodeValue)(program, fnIdentifier),
|
|
199
|
-
arguments: args,
|
|
200
|
-
from: node.from,
|
|
201
|
-
to: node.to,
|
|
202
|
-
};
|
|
203
|
-
const functionExists = functions_1.FUNCTION_LIST.includes(fnName);
|
|
204
|
-
const functionDetail = functionExists
|
|
205
|
-
? (0, functions_1.getFunctionDetail)(fnName)
|
|
206
|
-
: undefined;
|
|
207
|
-
let primitive;
|
|
208
|
-
try {
|
|
209
|
-
primitive = functionDetail
|
|
210
|
-
? (0, primitiveFunctions_1.getFunctionPrimitive)(functionDetail, baseNode.arguments)
|
|
211
|
-
: constants_1.AST_PRIMITIVES.UNKNOWN;
|
|
212
|
-
}
|
|
213
|
-
catch (error) {
|
|
214
|
-
primitive = constants_1.AST_PRIMITIVES.UNKNOWN;
|
|
215
|
-
inference.errorList.push(error);
|
|
216
|
-
}
|
|
217
|
-
const resultNode = Object.assign(Object.assign({}, baseNode), { primitive });
|
|
218
|
-
if (functionExists && (parenthesisIsNotOpen || parenthesisIsNotClosed)) {
|
|
219
|
-
inference.errorList.push(new errors_1.MissingParenthesisError(resultNode));
|
|
152
|
+
function transformParenthesizedExpression(program, node, inference, context) {
|
|
153
|
+
var _a;
|
|
154
|
+
const expressionNode = node.getChild('Expression');
|
|
155
|
+
const parenthesisStart = node.getChild('ParenthesisStart');
|
|
156
|
+
const parenthesisEnd = node.getChild('ParenthesisEnd');
|
|
157
|
+
const resultNode = transformNode(program, expressionNode, inference, context);
|
|
158
|
+
if (!parenthesisStart || !parenthesisEnd) {
|
|
159
|
+
inference.errorList.push(new errors_1.MissingParenthesisError({
|
|
160
|
+
type: constants_1.AST_TYPES.parenthesisExpression,
|
|
161
|
+
from: !parenthesisStart ? node.from : node.to,
|
|
162
|
+
to: node.to,
|
|
163
|
+
primitive: (_a = resultNode === null || resultNode === void 0 ? void 0 : resultNode.primitive) !== null && _a !== void 0 ? _a : constants_1.AST_PRIMITIVES.UNKNOWN,
|
|
164
|
+
}));
|
|
220
165
|
}
|
|
221
|
-
inference.formulaFunctions.push(resultNode);
|
|
222
166
|
return resultNode;
|
|
223
167
|
}
|
|
224
168
|
function createLiteralValue({ from, to }, dataType, value) {
|
|
@@ -232,7 +176,7 @@ function createLiteralValue({ from, to }, dataType, value) {
|
|
|
232
176
|
};
|
|
233
177
|
}
|
|
234
178
|
// "MM/DD/YYYY" or "MM/DD/YYYY HH:mm:ss"
|
|
235
|
-
const DATE_REGEXP = /^(
|
|
179
|
+
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))?$/;
|
|
236
180
|
function transformDateValue(program, node) {
|
|
237
181
|
const dateStr = (0, utils_1.getNodeValue)(program, node).slice(1, -1);
|
|
238
182
|
const dateMatch = DATE_REGEXP.exec(dateStr);
|