@qrvey/formula-lang 0.6.0 → 0.8.0
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 +33 -0
- package/dist/cjs/constants/index.d.ts +12 -0
- package/dist/cjs/constants/index.js +14 -1
- package/dist/cjs/constants/index.js.map +1 -1
- package/dist/cjs/constants/interfaces.d.ts +15 -5
- package/dist/cjs/errors/analyzer/elasticsearch.js +6 -1
- package/dist/cjs/errors/analyzer/elasticsearch.js.map +1 -1
- package/dist/cjs/errors/analyzer/index.js +2 -1
- package/dist/cjs/errors/analyzer/index.js.map +1 -1
- package/dist/cjs/functions/abs.js +3 -1
- package/dist/cjs/functions/abs.js.map +1 -1
- package/dist/cjs/functions/datedif.js +5 -3
- package/dist/cjs/functions/datedif.js.map +1 -1
- package/dist/cjs/functions/day.js +3 -1
- package/dist/cjs/functions/day.js.map +1 -1
- package/dist/cjs/functions/hour.js +3 -1
- package/dist/cjs/functions/hour.js.map +1 -1
- package/dist/cjs/functions/if.js +8 -0
- package/dist/cjs/functions/if.js.map +1 -1
- package/dist/cjs/functions/ifs.js +10 -0
- package/dist/cjs/functions/ifs.js.map +1 -1
- package/dist/cjs/functions/mid.js +6 -4
- package/dist/cjs/functions/mid.js.map +1 -1
- package/dist/cjs/functions/minute.js +3 -1
- package/dist/cjs/functions/minute.js.map +1 -1
- package/dist/cjs/functions/month.js +3 -1
- package/dist/cjs/functions/month.js.map +1 -1
- package/dist/cjs/functions/second.js +3 -1
- package/dist/cjs/functions/second.js.map +1 -1
- package/dist/cjs/functions/year.js +3 -1
- package/dist/cjs/functions/year.js.map +1 -1
- package/dist/cjs/grammar/generated/qformula.lang.js +10 -10
- package/dist/cjs/grammar/generated/qformula.lang.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/main.js +9 -54
- package/dist/cjs/main.js.map +1 -1
- package/dist/cjs/parser/json-parser.js +65 -37
- package/dist/cjs/parser/json-parser.js.map +1 -1
- package/dist/cjs/parser/syntax-errors.js +1 -0
- package/dist/cjs/parser/syntax-errors.js.map +1 -1
- package/dist/cjs/transpiler/columnTranspilation.js +2 -2
- package/dist/cjs/transpiler/columnTranspilation.js.map +1 -1
- package/dist/cjs/transpiler/index.d.ts +1 -0
- package/dist/cjs/transpiler/index.js +17 -8
- package/dist/cjs/transpiler/index.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +0 -1
- package/dist/cjs/utils/index.js +0 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/isDateParam.d.ts +2 -1
- package/dist/cjs/utils/isDateParam.js +2 -1
- package/dist/cjs/utils/isDateParam.js.map +1 -1
- package/dist/cjs/utils/isNumberParam.d.ts +2 -1
- package/dist/cjs/utils/isNumberParam.js +4 -2
- package/dist/cjs/utils/isNumberParam.js.map +1 -1
- package/dist/cjs/utils/isStringParam.d.ts +2 -1
- package/dist/cjs/utils/isStringParam.js +4 -2
- package/dist/cjs/utils/isStringParam.js.map +1 -1
- package/dist/cjs/utils/primitiveFunctions.d.ts +5 -0
- package/dist/cjs/utils/primitiveFunctions.js +39 -0
- package/dist/cjs/utils/primitiveFunctions.js.map +1 -0
- package/dist/cjs/utils/sql/scripts.js +9 -6
- package/dist/cjs/utils/sql/scripts.js.map +1 -1
- package/dist/module/constants/index.d.ts +12 -0
- package/dist/module/constants/index.js +13 -0
- package/dist/module/constants/index.js.map +1 -1
- package/dist/module/constants/interfaces.d.ts +15 -5
- package/dist/module/errors/analyzer/elasticsearch.js +6 -1
- package/dist/module/errors/analyzer/elasticsearch.js.map +1 -1
- package/dist/module/errors/analyzer/index.js +2 -1
- package/dist/module/errors/analyzer/index.js.map +1 -1
- package/dist/module/functions/abs.js +3 -1
- package/dist/module/functions/abs.js.map +1 -1
- package/dist/module/functions/datedif.js +5 -3
- package/dist/module/functions/datedif.js.map +1 -1
- package/dist/module/functions/day.js +3 -1
- package/dist/module/functions/day.js.map +1 -1
- package/dist/module/functions/hour.js +3 -1
- package/dist/module/functions/hour.js.map +1 -1
- package/dist/module/functions/if.js +8 -0
- package/dist/module/functions/if.js.map +1 -1
- package/dist/module/functions/ifs.js +10 -0
- package/dist/module/functions/ifs.js.map +1 -1
- package/dist/module/functions/mid.js +7 -5
- package/dist/module/functions/mid.js.map +1 -1
- package/dist/module/functions/minute.js +3 -1
- package/dist/module/functions/minute.js.map +1 -1
- package/dist/module/functions/month.js +3 -1
- package/dist/module/functions/month.js.map +1 -1
- package/dist/module/functions/second.js +3 -1
- package/dist/module/functions/second.js.map +1 -1
- package/dist/module/functions/year.js +3 -1
- package/dist/module/functions/year.js.map +1 -1
- package/dist/module/grammar/generated/qformula.lang.js +10 -10
- package/dist/module/grammar/generated/qformula.lang.js.map +1 -1
- package/dist/module/index.d.ts +1 -1
- package/dist/module/index.js +1 -1
- package/dist/module/index.js.map +1 -1
- package/dist/module/main.js +9 -54
- package/dist/module/main.js.map +1 -1
- package/dist/module/parser/json-parser.js +68 -40
- package/dist/module/parser/json-parser.js.map +1 -1
- package/dist/module/parser/syntax-errors.js +2 -1
- package/dist/module/parser/syntax-errors.js.map +1 -1
- package/dist/module/transpiler/columnTranspilation.js +3 -3
- package/dist/module/transpiler/columnTranspilation.js.map +1 -1
- package/dist/module/transpiler/index.d.ts +1 -0
- package/dist/module/transpiler/index.js +18 -9
- package/dist/module/transpiler/index.js.map +1 -1
- package/dist/module/utils/index.d.ts +0 -1
- package/dist/module/utils/index.js +0 -1
- package/dist/module/utils/index.js.map +1 -1
- package/dist/module/utils/isDateParam.d.ts +2 -1
- package/dist/module/utils/isDateParam.js +2 -1
- package/dist/module/utils/isDateParam.js.map +1 -1
- package/dist/module/utils/isNumberParam.d.ts +2 -1
- package/dist/module/utils/isNumberParam.js +4 -2
- package/dist/module/utils/isNumberParam.js.map +1 -1
- package/dist/module/utils/isStringParam.d.ts +2 -1
- package/dist/module/utils/isStringParam.js +4 -2
- package/dist/module/utils/isStringParam.js.map +1 -1
- package/dist/module/utils/primitiveFunctions.d.ts +5 -0
- package/dist/module/utils/primitiveFunctions.js +33 -0
- package/dist/module/utils/primitiveFunctions.js.map +1 -0
- package/dist/module/utils/sql/scripts.js +9 -6
- package/dist/module/utils/sql/scripts.js.map +1 -1
- package/package.json +4 -4
- package/dist/cjs/utils/isPositiveNumberParam.d.ts +0 -2
- package/dist/cjs/utils/isPositiveNumberParam.js +0 -12
- package/dist/cjs/utils/isPositiveNumberParam.js.map +0 -1
- package/dist/module/utils/isPositiveNumberParam.d.ts +0 -2
- package/dist/module/utils/isPositiveNumberParam.js +0 -8
- package/dist/module/utils/isPositiveNumberParam.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mid.js","sourceRoot":"","sources":["../../../src/functions/mid.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mid.js","sourceRoot":"","sources":["../../../src/functions/mid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAExD;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,KAAK;IACX,UAAU,EAAE;QACR;YACI,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,cAAc,CAAC,MAAM;YAC3B,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,aAAa;YACzB,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,cAAc,CAAC,MAAM;YAC3B,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,gBAAgB;YAC5B,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,cAAc,CAAC,MAAM;YAC3B,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;KACX;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IACjE,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,OAAO,GAAG,OAAO,cAAc,KAAK,GAAG,QAAQ,GAAG,CAAC;AACvD,CAAC;AAED,SAAS,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,OAAO,aAAa,OAAO,KAAK,KAAK,GAAG,QAAQ,GAAG,CAAC;AACxD,CAAC;AAED,SAAS,SAAS,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IAC7D,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IAC5D,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { minuteScript } from '../utils/elasticsearch/scripts';
|
|
2
2
|
import { isDateParam } from '../utils';
|
|
3
|
+
import { AST_PRIMITIVES } from '../constants';
|
|
3
4
|
/**
|
|
4
5
|
* Returns the number of the MINUTE in a Date.
|
|
5
6
|
*/
|
|
@@ -10,7 +11,7 @@ export const MINUTE = {
|
|
|
10
11
|
{
|
|
11
12
|
identifier: 'DATE',
|
|
12
13
|
name: 'date',
|
|
13
|
-
type:
|
|
14
|
+
type: AST_PRIMITIVES.DATE,
|
|
14
15
|
optional: false,
|
|
15
16
|
validator: [isDateParam],
|
|
16
17
|
},
|
|
@@ -20,6 +21,7 @@ export const MINUTE = {
|
|
|
20
21
|
snowflake,
|
|
21
22
|
redshift,
|
|
22
23
|
},
|
|
24
|
+
primitiveResult: AST_PRIMITIVES.NUMBER,
|
|
23
25
|
};
|
|
24
26
|
function elasticsearch(value) {
|
|
25
27
|
return minuteScript(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minute.js","sourceRoot":"","sources":["../../../src/functions/minute.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"minute.js","sourceRoot":"","sources":["../../../src/functions/minute.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAuB;IACtC,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;KACX;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,uBAAuB,KAAK,GAAG,CAAC;AAC3C,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { monthScript } from '../utils/elasticsearch/scripts';
|
|
2
2
|
import { isDateParam } from '../utils';
|
|
3
|
+
import { AST_PRIMITIVES } from '../constants';
|
|
3
4
|
/**
|
|
4
5
|
* Returns the number of the MONTH in a Date.
|
|
5
6
|
*/
|
|
@@ -10,7 +11,7 @@ export const MONTH = {
|
|
|
10
11
|
{
|
|
11
12
|
identifier: 'DATE',
|
|
12
13
|
name: 'date',
|
|
13
|
-
type:
|
|
14
|
+
type: AST_PRIMITIVES.DATE,
|
|
14
15
|
optional: false,
|
|
15
16
|
validator: [isDateParam],
|
|
16
17
|
},
|
|
@@ -20,6 +21,7 @@ export const MONTH = {
|
|
|
20
21
|
snowflake,
|
|
21
22
|
redshift,
|
|
22
23
|
},
|
|
24
|
+
primitiveResult: AST_PRIMITIVES.NUMBER,
|
|
23
25
|
};
|
|
24
26
|
function elasticsearch(value) {
|
|
25
27
|
return monthScript(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"month.js","sourceRoot":"","sources":["../../../src/functions/month.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"month.js","sourceRoot":"","sources":["../../../src/functions/month.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAuB;IACrC,UAAU,EAAE,OAAO;IACnB,IAAI,EAAE,OAAO;IACb,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;KACX;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,sBAAsB,KAAK,GAAG,CAAC;AAC1C,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { secondScript } from '../utils/elasticsearch/scripts';
|
|
2
2
|
import { isDateParam } from '../utils';
|
|
3
|
+
import { AST_PRIMITIVES } from '../constants';
|
|
3
4
|
/**
|
|
4
5
|
* Returns the number of the SECOND in a Date.
|
|
5
6
|
*/
|
|
@@ -10,7 +11,7 @@ export const SECOND = {
|
|
|
10
11
|
{
|
|
11
12
|
identifier: 'DATE',
|
|
12
13
|
name: 'date',
|
|
13
|
-
type:
|
|
14
|
+
type: AST_PRIMITIVES.DATE,
|
|
14
15
|
optional: false,
|
|
15
16
|
validator: [isDateParam],
|
|
16
17
|
},
|
|
@@ -20,6 +21,7 @@ export const SECOND = {
|
|
|
20
21
|
snowflake,
|
|
21
22
|
redshift,
|
|
22
23
|
},
|
|
24
|
+
primitiveResult: AST_PRIMITIVES.NUMBER,
|
|
23
25
|
};
|
|
24
26
|
function elasticsearch(value) {
|
|
25
27
|
return secondScript(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"second.js","sourceRoot":"","sources":["../../../src/functions/second.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"second.js","sourceRoot":"","sources":["../../../src/functions/second.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAuB;IACtC,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;KACX;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,uBAAuB,KAAK,GAAG,CAAC;AAC3C,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { yearScript } from '../utils/elasticsearch/scripts';
|
|
2
2
|
import { isDateParam } from '../utils';
|
|
3
|
+
import { AST_PRIMITIVES } from '../constants';
|
|
3
4
|
/**
|
|
4
5
|
* Returns the number of the YEAR in a Date.
|
|
5
6
|
*/
|
|
@@ -10,7 +11,7 @@ export const YEAR = {
|
|
|
10
11
|
{
|
|
11
12
|
identifier: 'DATE',
|
|
12
13
|
name: 'date',
|
|
13
|
-
type:
|
|
14
|
+
type: AST_PRIMITIVES.DATE,
|
|
14
15
|
optional: false,
|
|
15
16
|
validator: [isDateParam],
|
|
16
17
|
},
|
|
@@ -20,6 +21,7 @@ export const YEAR = {
|
|
|
20
21
|
snowflake,
|
|
21
22
|
redshift,
|
|
22
23
|
},
|
|
24
|
+
primitiveResult: AST_PRIMITIVES.NUMBER,
|
|
23
25
|
};
|
|
24
26
|
function elasticsearch(value) {
|
|
25
27
|
return yearScript(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"year.js","sourceRoot":"","sources":["../../../src/functions/year.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"year.js","sourceRoot":"","sources":["../../../src/functions/year.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAuB;IACpC,UAAU,EAAE,MAAM;IAClB,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;KACX;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,qBAAqB,KAAK,GAAG,CAAC;AACzC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
|
|
@@ -5,18 +5,18 @@ 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: "
|
|
9
|
-
stateData: "
|
|
10
|
-
goto: "
|
|
11
|
-
nodeNames: "⚠ LineComment Program Expression Value Number Date String Boolean Null
|
|
12
|
-
maxTerm:
|
|
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$cQPO'#CqO$mQPO,59eOOQO7+$W7+$WO$uQPO,59]OOQO-E6o-E6o",
|
|
9
|
+
stateData: "%c~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#lOkeXneX~P]OnhOkma~O_^Oa[Ob]Oc]Okeanea~OUVPhijb~",
|
|
10
|
+
goto: "!ynPPPo!XPPPPP!X!c!m!X!XP!XPPP!X!pPPPPPPP!vQUOQZTQ_VQ`XQd[Qe]Qf^RkhaWOTVX[]^haROTVX[]^hRbXQi`RliRaX",
|
|
11
|
+
nodeNames: "⚠ LineComment Program Expression Value Number Date String Boolean Null Function FunctionIdentifier FunctionArguments Variable UnaryExpression ArithOp BinaryExpression LogicOp ArithOp ArithOp ParenthesizedExpression",
|
|
12
|
+
maxTerm: 33,
|
|
13
13
|
skippedNodes: [0, 1],
|
|
14
|
-
repeatNodeCount:
|
|
15
|
-
tokenData: "=
|
|
16
|
-
tokenizers: [0, 1
|
|
14
|
+
repeatNodeCount: 1,
|
|
15
|
+
tokenData: "=O~RpXY#VYZ#zZ[#V]^#zpq#Vrs$Pxy7kyz7pz{7u{|7z|}9S}!O7z!O!P9X!P!Q:a!Q![;Q!^!_;n!_!`;y!`!a<O!c!}<W!}#O<t#P#Q<y#R#S8h#T#o<W$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~#[Yh~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~$POi~~$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~%dOV~~%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~4nOU~V~~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~7pOl~~7uOk~~7zOc~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#o8hR9zVTPqQ{|8h}!O8h!O!P8h!Q![9s!c!}8h#R#S9s#T#o8h~:fPb~!P!Q:i~:nSP~OY:iZ;'S:i;'S;=`:z<%lO:i~:}P;=`<%l:iR;XVTPqQ{|8h}!O8h!O!P9s!Q![;Q!c!}8h#R#S;Q#T#o8h~;sQa~!_!`;y!`!a;y~<OOa~~<TPa~!_!`;yR<_VqQjP{|8h}!O8h!O!P8h!Q![<W!c!}<W#R#S<W#T#o<W~<yOp~~=OOo~",
|
|
16
|
+
tokenizers: [0, 1],
|
|
17
17
|
topRules: { "Program": [0, 2] },
|
|
18
|
-
specialized: [{ term:
|
|
19
|
-
tokenPrec:
|
|
18
|
+
specialized: [{ term: 26, get: value => spec_identifier[value] || -1 }],
|
|
19
|
+
tokenPrec: 195
|
|
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,6SAA6S;IACrT,SAAS,EAAE,iNAAiN;IAC5N,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.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { ENGINES } from './constants/index';
|
|
|
2
2
|
import { FormulaContext, TranspilationResponse } from './constants/interfaces';
|
|
3
3
|
export { QFormula as FormulaHighlight, QFormulaLang as FormulaLang, QFormulaHighlightConfig as FormulaHightConfig, } from './grammar/qformula.grammar';
|
|
4
4
|
export { calculateAST } from './parser/json-parser';
|
|
5
|
-
export { ENGINES } from './constants/index';
|
|
5
|
+
export { ENGINES, AST_PRIMITIVES } from './constants/index';
|
|
6
6
|
export { FUNCTION_LIST, getFunctionDetail } from './functions/index';
|
|
7
7
|
export { TranspileAST } from './transpiler/index';
|
|
8
8
|
export { ProgramAST, TranspilationResponse, FormulaContext, } from './constants/interfaces';
|
package/dist/module/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { calculateAST } from './parser/json-parser';
|
|
|
3
3
|
import { TranspileAST } from './transpiler/index';
|
|
4
4
|
export { QFormula as FormulaHighlight, QFormulaLang as FormulaLang, QFormulaHighlightConfig as FormulaHightConfig, } from './grammar/qformula.grammar';
|
|
5
5
|
export { calculateAST } from './parser/json-parser';
|
|
6
|
-
export { ENGINES } from './constants/index';
|
|
6
|
+
export { ENGINES, AST_PRIMITIVES } from './constants/index';
|
|
7
7
|
export { FUNCTION_LIST, getFunctionDetail } from './functions/index';
|
|
8
8
|
export { TranspileAST } from './transpiler/index';
|
|
9
9
|
export { BaseError, errorAnalyzer } from './errors';
|
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,MAAM,mBAAmB,CAAC;
|
|
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,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC"}
|
package/dist/module/main.js
CHANGED
|
@@ -1,63 +1,18 @@
|
|
|
1
1
|
import { TranspileAST, calculateAST } from '.';
|
|
2
2
|
customElements.whenDefined('q-codemirror-test').then(load);
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
label: 'Date',
|
|
9
|
-
type: 'date',
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
id: 'idColumn2',
|
|
13
|
-
replacement: 'Date_Origin_Column2',
|
|
14
|
-
label: 'DateTime',
|
|
15
|
-
type: 'date',
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
id: 'idColumn3',
|
|
19
|
-
replacement: 'Date_Origin_Column3',
|
|
20
|
-
label: 'Donations',
|
|
21
|
-
type: 'string',
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
id: 'idColumn4',
|
|
25
|
-
replacement: 'Date_Origin_Column4',
|
|
26
|
-
label: 'Duration',
|
|
27
|
-
type: 'number',
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
id: 'idColumn5',
|
|
31
|
-
replacement: 'Date_Origin_Column5',
|
|
32
|
-
label: 'City',
|
|
33
|
-
type: 'string',
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
id: 'idColumn6',
|
|
37
|
-
replacement: 'Date_Origin_Column6',
|
|
38
|
-
label: 'City New',
|
|
39
|
-
type: 'string',
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
id: 'idColumn7',
|
|
43
|
-
replacement: 'Date_Origin_Column7',
|
|
44
|
-
label: 'City New Country',
|
|
45
|
-
type: 'string',
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
id: 'idColumn8',
|
|
49
|
-
replacement: 'Date_Origin_Column8',
|
|
50
|
-
label: 'Country',
|
|
51
|
-
type: 'string',
|
|
52
|
-
},
|
|
53
|
-
],
|
|
3
|
+
window.formulaSetting = {
|
|
4
|
+
domain: 'https://postqa2.qrveyapp.com',
|
|
5
|
+
apiKey: 'VXlA8eZmrJUaCk8OlAxP3KUpR6S79UO2xgawf1tX',
|
|
6
|
+
userId: 'iduDnkZPS',
|
|
7
|
+
appId: 'XqsfiPaxO',
|
|
54
8
|
};
|
|
55
9
|
function load() {
|
|
56
|
-
const quiFormulaEditor = document.querySelector('q-codemirror-test');
|
|
10
|
+
const quiFormulaEditor = document.querySelector('q-codemirror-integrated-test');
|
|
57
11
|
if (quiFormulaEditor) {
|
|
58
12
|
// (quiFormulaEditor as any).value = 'DATEDIF([idColumn1], "11/02/2021 10:22:30", "Y") + 1 + MONTH([idColumn1]) + DAY([idColumn1])';
|
|
59
|
-
quiFormulaEditor.value = 'ABS()';
|
|
60
|
-
quiFormulaEditor.
|
|
13
|
+
// (quiFormulaEditor as any).value = 'ABS()';
|
|
14
|
+
quiFormulaEditor.value =
|
|
15
|
+
'DATEDIF([mIXvWLlAw], "11/02/2021 10:22:30", "Y") + 1 + MONTH([mIXvWLlAw]) + DAY([mIXvWLlAw])';
|
|
61
16
|
quiFormulaEditor.langSupport = {
|
|
62
17
|
customCalculateAST: calculateAST,
|
|
63
18
|
customTranspileAST: TranspileAST,
|
package/dist/module/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC;AAE/C,cAAc,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC;AAE/C,cAAc,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1D,MAAc,CAAC,cAAc,GAAG;IAC7B,MAAM,EAAE,8BAA8B;IACtC,MAAM,EAAE,0CAA0C;IAClD,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,WAAW;CACrB,CAAC;AAEF,SAAS,IAAI;IACT,MAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAC3C,8BAA8B,CACjC,CAAC;IACF,IAAI,gBAAgB,EAAE;QAClB,oIAAoI;QACpI,6CAA6C;QAC5C,gBAAwB,CAAC,KAAK;YAC3B,8FAA8F,CAAC;QAClG,gBAAwB,CAAC,WAAW,GAAG;YACpC,kBAAkB,EAAE,YAAY;YAChC,kBAAkB,EAAE,YAAY;SACnC,CAAC;KACL;AACL,CAAC"}
|
|
@@ -1,35 +1,45 @@
|
|
|
1
|
-
import { AST_TYPES } from '../constants';
|
|
1
|
+
import { AST_PRIMITIVES, AST_TYPES } from '../constants';
|
|
2
2
|
import { getNodeValue, getMonthMaxDayAllowed, isValidDate, getVariableType, getVariableContext, } from '../utils';
|
|
3
3
|
import { calculateNodeSyntaxErrors } from './syntax-errors';
|
|
4
|
-
import { MissingParenthesisError, NotAllowedExpressionError
|
|
5
|
-
import { FUNCTION_LIST } from '../functions';
|
|
4
|
+
import { MissingParenthesisError, NotAllowedExpressionError } from '../errors';
|
|
5
|
+
import { FUNCTION_LIST, getFunctionDetail } from '../functions';
|
|
6
|
+
import { getFunctionPrimitive, primitiveIsIncluded, } from '../utils/primitiveFunctions';
|
|
6
7
|
const PARSER_VERSION = '0.0.0';
|
|
7
8
|
const LANG_NAME = 'QrveyLang';
|
|
8
9
|
export function calculateAST(program, startNode, context) {
|
|
10
|
+
var _a;
|
|
9
11
|
if (!startNode)
|
|
10
12
|
return;
|
|
11
13
|
const syntaxErrors = calculateNodeSyntaxErrors(program, startNode);
|
|
14
|
+
const inference = {
|
|
15
|
+
errorList: syntaxErrors,
|
|
16
|
+
formulaVariables: [],
|
|
17
|
+
};
|
|
18
|
+
const body = transformNode(program, startNode, inference, context);
|
|
19
|
+
const { errorList: errors, formulaVariables: variables } = inference;
|
|
12
20
|
return {
|
|
13
21
|
type: AST_TYPES.program,
|
|
14
22
|
exp: program,
|
|
15
23
|
lang: LANG_NAME,
|
|
16
24
|
version: PARSER_VERSION,
|
|
17
|
-
body
|
|
25
|
+
body,
|
|
18
26
|
from: startNode.from,
|
|
19
27
|
to: startNode.to,
|
|
20
|
-
errors
|
|
28
|
+
errors,
|
|
29
|
+
variables,
|
|
30
|
+
primitive: (_a = body === null || body === void 0 ? void 0 : body.primitive) !== null && _a !== void 0 ? _a : AST_PRIMITIVES.UNKNOWN,
|
|
21
31
|
};
|
|
22
32
|
}
|
|
23
|
-
function transformNode(program, node,
|
|
33
|
+
function transformNode(program, node, inference, context) {
|
|
24
34
|
if (!node)
|
|
25
35
|
return undefined;
|
|
26
36
|
switch (node.name) {
|
|
27
37
|
case 'BinaryExpression':
|
|
28
|
-
return transformBinaryExpression(program, node,
|
|
38
|
+
return transformBinaryExpression(program, node, inference, context);
|
|
29
39
|
case 'UnaryExpression':
|
|
30
|
-
return transformUnaryExpression(program, node,
|
|
40
|
+
return transformUnaryExpression(program, node, inference, context);
|
|
31
41
|
case 'Function':
|
|
32
|
-
return transformFunctionExpression(program, node,
|
|
42
|
+
return transformFunctionExpression(program, node, inference, context);
|
|
33
43
|
case 'Number':
|
|
34
44
|
return transformNumberValue(program, node);
|
|
35
45
|
case 'Date':
|
|
@@ -40,26 +50,27 @@ function transformNode(program, node, errorList, context) {
|
|
|
40
50
|
return transformBooleanValue(program, node);
|
|
41
51
|
case 'Null':
|
|
42
52
|
return transformNullValue(program, node);
|
|
43
|
-
case 'Array':
|
|
44
|
-
return transformArrayValue(program, node, errorList, context);
|
|
45
53
|
case 'Variable':
|
|
46
|
-
return transformVariableValue(program, node, context);
|
|
54
|
+
return transformVariableValue(program, node, inference, context);
|
|
47
55
|
default:
|
|
48
56
|
return node.firstChild
|
|
49
|
-
? transformNode(program, node.firstChild,
|
|
57
|
+
? transformNode(program, node.firstChild, inference, context)
|
|
50
58
|
: undefined;
|
|
51
59
|
}
|
|
52
60
|
}
|
|
53
|
-
function transformBinaryExpression(program, node,
|
|
61
|
+
function transformBinaryExpression(program, node, inference, context) {
|
|
54
62
|
const [leftNode, rightNode] = node.getChildren('Expression');
|
|
55
63
|
const logicOperator = node.getChild('LogicOp');
|
|
56
64
|
const arithOperator = node.getChild('ArithOp');
|
|
57
|
-
const left = transformNode(program, leftNode,
|
|
58
|
-
const right = transformNode(program, rightNode,
|
|
65
|
+
const left = transformNode(program, leftNode, inference, context);
|
|
66
|
+
const right = transformNode(program, rightNode, inference, context);
|
|
59
67
|
const leftIsNotAValidNumber = (left === null || left === void 0 ? void 0 : left.type) === AST_TYPES.literal &&
|
|
60
68
|
left.dataType !== 'number';
|
|
61
69
|
const rightIsNotAValidNumber = (right === null || right === void 0 ? void 0 : right.type) === AST_TYPES.literal &&
|
|
62
70
|
right.dataType !== 'number';
|
|
71
|
+
const primitive = left.primitive === (right === null || right === void 0 ? void 0 : right.primitive)
|
|
72
|
+
? left.primitive
|
|
73
|
+
: AST_PRIMITIVES.UNKNOWN;
|
|
63
74
|
const binaryAST = {
|
|
64
75
|
operator: getNodeValue(program, (logicOperator !== null && logicOperator !== void 0 ? logicOperator : arithOperator)),
|
|
65
76
|
type: AST_TYPES.binaryExpression,
|
|
@@ -67,42 +78,49 @@ function transformBinaryExpression(program, node, errorList, context) {
|
|
|
67
78
|
right,
|
|
68
79
|
from: node.from,
|
|
69
80
|
to: node.to,
|
|
81
|
+
primitive,
|
|
70
82
|
};
|
|
71
83
|
if (!leftNode ||
|
|
72
84
|
!rightNode ||
|
|
85
|
+
(!arithOperator && !logicOperator) ||
|
|
73
86
|
(arithOperator && (leftIsNotAValidNumber || rightIsNotAValidNumber))) {
|
|
74
|
-
errorList.push(new NotAllowedExpressionError(binaryAST));
|
|
87
|
+
inference.errorList.push(new NotAllowedExpressionError(binaryAST));
|
|
75
88
|
}
|
|
76
89
|
return binaryAST;
|
|
77
90
|
}
|
|
78
|
-
function transformUnaryExpression(program, node,
|
|
91
|
+
function transformUnaryExpression(program, node, inference, context) {
|
|
79
92
|
const [rightNode] = node.getChildren('Expression');
|
|
80
93
|
const operator = node.getChild('ArithOp');
|
|
94
|
+
const right = transformNode(program, rightNode, inference, context);
|
|
95
|
+
const primitive = primitiveIsIncluded(right === null || right === void 0 ? void 0 : right.primitive, AST_PRIMITIVES.NUMBER, AST_PRIMITIVES.BOOLEAN)
|
|
96
|
+
? right.primitive
|
|
97
|
+
: AST_PRIMITIVES.UNKNOWN;
|
|
81
98
|
const unaryAST = {
|
|
82
99
|
operator: getNodeValue(program, operator),
|
|
83
100
|
type: AST_TYPES.unaryExpression,
|
|
84
|
-
right
|
|
101
|
+
right,
|
|
85
102
|
from: node.from,
|
|
86
103
|
to: node.to,
|
|
104
|
+
primitive,
|
|
87
105
|
};
|
|
88
106
|
if (!rightNode) {
|
|
89
|
-
errorList.push(new NotAllowedExpressionError(unaryAST));
|
|
107
|
+
inference.errorList.push(new NotAllowedExpressionError(unaryAST));
|
|
90
108
|
}
|
|
91
109
|
return unaryAST;
|
|
92
110
|
}
|
|
93
|
-
function transformFunctionExpression(program, node,
|
|
111
|
+
function transformFunctionExpression(program, node, inference, context) {
|
|
94
112
|
const args = node.getChild('FunctionArguments');
|
|
95
113
|
const fnIdentifier = node.getChild('FunctionIdentifier');
|
|
96
114
|
const fnName = getNodeValue(program, fnIdentifier);
|
|
97
115
|
const fnString = getNodeValue(program, node);
|
|
98
116
|
const parenthesisIsNotOpen = fnString.slice(fnName.length, fnName.length + 1) !== '(';
|
|
99
117
|
const parenthesisIsNotClosed = fnString.slice(-1) !== ')';
|
|
100
|
-
const
|
|
118
|
+
const baseNode = {
|
|
101
119
|
type: AST_TYPES.functionCall,
|
|
102
120
|
name: getNodeValue(program, fnIdentifier),
|
|
103
121
|
arguments: args
|
|
104
122
|
? args.getChildren('Expression').map((childNode) => {
|
|
105
|
-
const nodeResult = transformNode(program, childNode,
|
|
123
|
+
const nodeResult = transformNode(program, childNode, inference, context);
|
|
106
124
|
return (nodeResult !== null && nodeResult !== void 0 ? nodeResult : createUnknownValue(childNode, getNodeValue(program, childNode)));
|
|
107
125
|
})
|
|
108
126
|
: [],
|
|
@@ -110,8 +128,15 @@ function transformFunctionExpression(program, node, errorList, context) {
|
|
|
110
128
|
to: node.to,
|
|
111
129
|
};
|
|
112
130
|
const functionExists = FUNCTION_LIST.includes(fnName);
|
|
131
|
+
const functionDetail = functionExists
|
|
132
|
+
? getFunctionDetail(fnName)
|
|
133
|
+
: undefined;
|
|
134
|
+
const primitive = functionDetail
|
|
135
|
+
? getFunctionPrimitive(functionDetail, baseNode.arguments)
|
|
136
|
+
: AST_PRIMITIVES.UNKNOWN;
|
|
137
|
+
const resultNode = Object.assign(Object.assign({}, baseNode), { primitive });
|
|
113
138
|
if (functionExists && (parenthesisIsNotOpen || parenthesisIsNotClosed)) {
|
|
114
|
-
errorList.push(new MissingParenthesisError(resultNode));
|
|
139
|
+
inference.errorList.push(new MissingParenthesisError(resultNode));
|
|
115
140
|
}
|
|
116
141
|
return resultNode;
|
|
117
142
|
}
|
|
@@ -122,6 +147,7 @@ function createLiteralValue({ from, to }, dataType, value) {
|
|
|
122
147
|
value,
|
|
123
148
|
from,
|
|
124
149
|
to,
|
|
150
|
+
primitive: dataType,
|
|
125
151
|
};
|
|
126
152
|
}
|
|
127
153
|
function createUnknownValue({ from, to }, text) {
|
|
@@ -130,6 +156,7 @@ function createUnknownValue({ from, to }, text) {
|
|
|
130
156
|
from,
|
|
131
157
|
to,
|
|
132
158
|
text,
|
|
159
|
+
primitive: AST_PRIMITIVES.UNKNOWN,
|
|
133
160
|
};
|
|
134
161
|
}
|
|
135
162
|
// "MM/DD/YYYY" or "MM/DD/YYYY HH:mm:ss"
|
|
@@ -157,45 +184,46 @@ function transformDateValue(program, node) {
|
|
|
157
184
|
if (!isValidDate(dateValue))
|
|
158
185
|
return transformStringValue(program, node);
|
|
159
186
|
const value = dateValue.toISOString();
|
|
160
|
-
return createLiteralValue(node,
|
|
187
|
+
return createLiteralValue(node, AST_PRIMITIVES.DATE, value);
|
|
161
188
|
}
|
|
162
189
|
function transformStringValue(program, node) {
|
|
163
190
|
const value = getNodeValue(program, node).slice(1, -1);
|
|
164
|
-
return createLiteralValue(node,
|
|
191
|
+
return createLiteralValue(node, AST_PRIMITIVES.STRING, value);
|
|
165
192
|
}
|
|
166
193
|
function transformNumberValue(program, node) {
|
|
167
194
|
const value = parseFloat(getNodeValue(program, node));
|
|
168
|
-
return createLiteralValue(node,
|
|
195
|
+
return createLiteralValue(node, AST_PRIMITIVES.NUMBER, value);
|
|
169
196
|
}
|
|
170
197
|
function transformBooleanValue(program, node) {
|
|
171
198
|
const value = getNodeValue(program, node) === 'true';
|
|
172
|
-
return createLiteralValue(node,
|
|
199
|
+
return createLiteralValue(node, AST_PRIMITIVES.BOOLEAN, value);
|
|
173
200
|
}
|
|
174
201
|
function transformNullValue(_program, node) {
|
|
175
|
-
return createLiteralValue(node,
|
|
176
|
-
}
|
|
177
|
-
function transformArrayValue(program, node, errorList, context) {
|
|
178
|
-
const childValue = node.getChildren('Value');
|
|
179
|
-
const value = childValue
|
|
180
|
-
? childValue.map((childNode) => {
|
|
181
|
-
const nodeResult = transformNode(program, childNode, errorList, context);
|
|
182
|
-
return (nodeResult !== null && nodeResult !== void 0 ? nodeResult : createUnknownValue(childNode, getNodeValue(program, childNode)));
|
|
183
|
-
})
|
|
184
|
-
: [];
|
|
185
|
-
return createLiteralValue(node, 'array', value);
|
|
202
|
+
return createLiteralValue(node, AST_PRIMITIVES.NULL, null);
|
|
186
203
|
}
|
|
187
|
-
function transformVariableValue(program, node, context) {
|
|
204
|
+
function transformVariableValue(program, node, inference, context) {
|
|
205
|
+
var _a;
|
|
188
206
|
let variableValue = getNodeValue(program, node).slice(1, -1);
|
|
189
207
|
const variableContext = getVariableContext(variableValue, context);
|
|
190
208
|
const variableType = getVariableType(variableContext);
|
|
191
209
|
if (variableType === 'Token')
|
|
192
210
|
variableValue = `{{${variableValue}}}`;
|
|
211
|
+
const variableExistInInference = inference.formulaVariables
|
|
212
|
+
.map((v) => v.id)
|
|
213
|
+
.includes(variableValue);
|
|
214
|
+
if (!variableExistInInference)
|
|
215
|
+
inference.formulaVariables.push(variableContext !== null && variableContext !== void 0 ? variableContext : {
|
|
216
|
+
id: variableValue,
|
|
217
|
+
label: variableValue,
|
|
218
|
+
type: AST_PRIMITIVES.STRING,
|
|
219
|
+
});
|
|
193
220
|
return {
|
|
194
221
|
type: variableType,
|
|
195
222
|
value: variableValue,
|
|
196
223
|
context: variableContext,
|
|
197
224
|
from: node.from,
|
|
198
225
|
to: node.to,
|
|
226
|
+
primitive: (_a = variableContext === null || variableContext === void 0 ? void 0 : variableContext.type) !== null && _a !== void 0 ? _a : AST_PRIMITIVES.UNKNOWN,
|
|
199
227
|
};
|
|
200
228
|
}
|
|
201
229
|
//# sourceMappingURL=json-parser.js.map
|
|
@@ -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,6 +1,6 @@
|
|
|
1
1
|
import { UnknownTokenError } from '../errors';
|
|
2
2
|
import { getNodeValue } from '../utils';
|
|
3
|
-
import { AST_TYPES } from '../constants';
|
|
3
|
+
import { AST_PRIMITIVES, AST_TYPES } from '../constants';
|
|
4
4
|
export function calculateNodeSyntaxErrors(program, node) {
|
|
5
5
|
const text = getNodeValue(program, node);
|
|
6
6
|
if (text === '')
|
|
@@ -15,6 +15,7 @@ export function calculateNodeSyntaxErrors(program, node) {
|
|
|
15
15
|
from: n.from,
|
|
16
16
|
to: n.to,
|
|
17
17
|
text: textError,
|
|
18
|
+
primitive: AST_PRIMITIVES.UNKNOWN,
|
|
18
19
|
}));
|
|
19
20
|
}
|
|
20
21
|
}
|
|
@@ -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,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;AAEzD,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;oBAClB,IAAI,EAAE,SAAS,CAAC,OAAO;oBACvB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,IAAI,EAAE,SAAS;oBACf,SAAS,EAAE,cAAc,CAAC,OAAO;iBACpC,CAAC,CACL,CAAC;aACL;SACJ;IACL,CAAC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACrB,CAAC"}
|