@qrvey/formula-lang 0.10.0 → 0.11.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.
Files changed (128) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/cjs/constants/index.d.ts +2 -1
  3. package/dist/cjs/constants/index.js +1 -0
  4. package/dist/cjs/constants/index.js.map +1 -1
  5. package/dist/cjs/constants/interfaces.d.ts +18 -8
  6. package/dist/cjs/errors/analyzer/index.js +1 -1
  7. package/dist/cjs/errors/analyzer/index.js.map +1 -1
  8. package/dist/cjs/errors/definitions.d.ts +8 -1
  9. package/dist/cjs/errors/definitions.js +17 -2
  10. package/dist/cjs/errors/definitions.js.map +1 -1
  11. package/dist/cjs/errors/dictionary.d.ts +3 -1
  12. package/dist/cjs/errors/dictionary.js +10 -0
  13. package/dist/cjs/errors/dictionary.js.map +1 -1
  14. package/dist/cjs/errors/index.d.ts +1 -0
  15. package/dist/cjs/errors/index.js +1 -0
  16. package/dist/cjs/errors/index.js.map +1 -1
  17. package/dist/cjs/errors/mismatch.d.ts +33 -0
  18. package/dist/cjs/errors/mismatch.js +67 -0
  19. package/dist/cjs/errors/mismatch.js.map +1 -0
  20. package/dist/cjs/functions/abs.js +0 -2
  21. package/dist/cjs/functions/abs.js.map +1 -1
  22. package/dist/cjs/functions/datedif.js +7 -7
  23. package/dist/cjs/functions/datedif.js.map +1 -1
  24. package/dist/cjs/functions/day.js +0 -2
  25. package/dist/cjs/functions/day.js.map +1 -1
  26. package/dist/cjs/functions/hour.js +0 -2
  27. package/dist/cjs/functions/hour.js.map +1 -1
  28. package/dist/cjs/functions/if.js +4 -9
  29. package/dist/cjs/functions/if.js.map +1 -1
  30. package/dist/cjs/functions/ifs.js +3 -8
  31. package/dist/cjs/functions/ifs.js.map +1 -1
  32. package/dist/cjs/functions/isNull.js +3 -10
  33. package/dist/cjs/functions/isNull.js.map +1 -1
  34. package/dist/cjs/functions/mid.js +0 -4
  35. package/dist/cjs/functions/mid.js.map +1 -1
  36. package/dist/cjs/functions/minute.js +0 -2
  37. package/dist/cjs/functions/minute.js.map +1 -1
  38. package/dist/cjs/functions/month.js +0 -2
  39. package/dist/cjs/functions/month.js.map +1 -1
  40. package/dist/cjs/functions/second.js +0 -2
  41. package/dist/cjs/functions/second.js.map +1 -1
  42. package/dist/cjs/functions/year.js +0 -2
  43. package/dist/cjs/functions/year.js.map +1 -1
  44. package/dist/cjs/grammar/generated/qformula.lang.js +30 -8
  45. package/dist/cjs/grammar/generated/qformula.lang.js.map +1 -1
  46. package/dist/cjs/grammar/generated/qformula.lang.terms.d.ts +4 -3
  47. package/dist/cjs/grammar/generated/qformula.lang.terms.js +2 -2
  48. package/dist/cjs/grammar/generated/qformula.lang.terms.js.map +1 -1
  49. package/dist/cjs/grammar/tokens.d.ts +2 -0
  50. package/dist/cjs/grammar/tokens.js +26 -0
  51. package/dist/cjs/grammar/tokens.js.map +1 -0
  52. package/dist/cjs/parser/formula-parser.d.ts +2 -1
  53. package/dist/cjs/parser/formula-parser.js +11 -12
  54. package/dist/cjs/parser/formula-parser.js.map +1 -1
  55. package/dist/cjs/parser/json-parser.js +48 -19
  56. package/dist/cjs/parser/json-parser.js.map +1 -1
  57. package/dist/cjs/transpiler/columnTranspilation.d.ts +1 -1
  58. package/dist/cjs/transpiler/columnTranspilation.js +14 -3
  59. package/dist/cjs/transpiler/columnTranspilation.js.map +1 -1
  60. package/dist/cjs/transpiler/index.js +93 -14
  61. package/dist/cjs/transpiler/index.js.map +1 -1
  62. package/dist/cjs/transpiler/validateFuncStructure.d.ts +1 -1
  63. package/dist/cjs/transpiler/validateFuncStructure.js +60 -8
  64. package/dist/cjs/transpiler/validateFuncStructure.js.map +1 -1
  65. package/dist/module/constants/index.d.ts +2 -1
  66. package/dist/module/constants/index.js +1 -0
  67. package/dist/module/constants/index.js.map +1 -1
  68. package/dist/module/constants/interfaces.d.ts +18 -8
  69. package/dist/module/errors/analyzer/index.js +1 -1
  70. package/dist/module/errors/analyzer/index.js.map +1 -1
  71. package/dist/module/errors/definitions.d.ts +8 -1
  72. package/dist/module/errors/definitions.js +15 -1
  73. package/dist/module/errors/definitions.js.map +1 -1
  74. package/dist/module/errors/dictionary.d.ts +3 -1
  75. package/dist/module/errors/dictionary.js +10 -0
  76. package/dist/module/errors/dictionary.js.map +1 -1
  77. package/dist/module/errors/index.d.ts +1 -0
  78. package/dist/module/errors/index.js +1 -0
  79. package/dist/module/errors/index.js.map +1 -1
  80. package/dist/module/errors/mismatch.d.ts +33 -0
  81. package/dist/module/errors/mismatch.js +62 -0
  82. package/dist/module/errors/mismatch.js.map +1 -0
  83. package/dist/module/functions/abs.js +0 -2
  84. package/dist/module/functions/abs.js.map +1 -1
  85. package/dist/module/functions/datedif.js +7 -7
  86. package/dist/module/functions/datedif.js.map +1 -1
  87. package/dist/module/functions/day.js +0 -2
  88. package/dist/module/functions/day.js.map +1 -1
  89. package/dist/module/functions/hour.js +0 -2
  90. package/dist/module/functions/hour.js.map +1 -1
  91. package/dist/module/functions/if.js +4 -9
  92. package/dist/module/functions/if.js.map +1 -1
  93. package/dist/module/functions/ifs.js +3 -8
  94. package/dist/module/functions/ifs.js.map +1 -1
  95. package/dist/module/functions/isNull.js +3 -10
  96. package/dist/module/functions/isNull.js.map +1 -1
  97. package/dist/module/functions/mid.js +0 -4
  98. package/dist/module/functions/mid.js.map +1 -1
  99. package/dist/module/functions/minute.js +0 -2
  100. package/dist/module/functions/minute.js.map +1 -1
  101. package/dist/module/functions/month.js +0 -2
  102. package/dist/module/functions/month.js.map +1 -1
  103. package/dist/module/functions/second.js +0 -2
  104. package/dist/module/functions/second.js.map +1 -1
  105. package/dist/module/functions/year.js +0 -2
  106. package/dist/module/functions/year.js.map +1 -1
  107. package/dist/module/grammar/generated/qformula.lang.js +31 -9
  108. package/dist/module/grammar/generated/qformula.lang.js.map +1 -1
  109. package/dist/module/grammar/generated/qformula.lang.terms.d.ts +4 -3
  110. package/dist/module/grammar/generated/qformula.lang.terms.js +1 -1
  111. package/dist/module/grammar/generated/qformula.lang.terms.js.map +1 -1
  112. package/dist/module/grammar/tokens.d.ts +2 -0
  113. package/dist/module/grammar/tokens.js +23 -0
  114. package/dist/module/grammar/tokens.js.map +1 -0
  115. package/dist/module/parser/formula-parser.d.ts +2 -1
  116. package/dist/module/parser/formula-parser.js +9 -11
  117. package/dist/module/parser/formula-parser.js.map +1 -1
  118. package/dist/module/parser/json-parser.js +50 -21
  119. package/dist/module/parser/json-parser.js.map +1 -1
  120. package/dist/module/transpiler/columnTranspilation.d.ts +1 -1
  121. package/dist/module/transpiler/columnTranspilation.js +14 -3
  122. package/dist/module/transpiler/columnTranspilation.js.map +1 -1
  123. package/dist/module/transpiler/index.js +93 -14
  124. package/dist/module/transpiler/index.js.map +1 -1
  125. package/dist/module/transpiler/validateFuncStructure.d.ts +1 -1
  126. package/dist/module/transpiler/validateFuncStructure.js +60 -8
  127. package/dist/module/transpiler/validateFuncStructure.js.map +1 -1
  128. package/package.json +1 -1
@@ -1,26 +1,48 @@
1
- import { LRParser } from '@lezer/lr';
1
+ import { ExternalTokenizer, LRParser } from '@lezer/lr';
2
2
  import { LRLanguage, LanguageSupport } from '@codemirror/language';
3
3
  import { styleTags, tags } from '@lezer/highlight';
4
4
  // This file was generated by lezer-generator. You probably shouldn't edit it.
5
+ const noOprt = 24;
6
+ const space = [
7
+ 9, 10, 11, 12, 13, 32, 133, 160, 5760, 8192, 8193, 8194, 8195, 8196, 8197,
8
+ 8198, 8199, 8200, 8201, 8202, 8232, 8233, 8239, 8287, 12288,
9
+ ];
10
+ const operators = [43, 45, 42, 47, 60, 61, 62];
11
+ const parenteses = [41, 40];
12
+ const comma = 44;
13
+ const noOperator = new ExternalTokenizer((input, stack) => {
14
+ const { next } = input;
15
+ if (space.indexOf(next) > -1 ||
16
+ parenteses.indexOf(next) > -1 ||
17
+ next === comma)
18
+ return;
19
+ if (operators.indexOf(next) === -1 &&
20
+ next != -1 &&
21
+ !stack.context &&
22
+ stack.canShift(noOprt)) {
23
+ input.acceptToken(noOprt);
24
+ }
25
+ }, { contextual: true });
26
+ // This file was generated by lezer-generator. You probably shouldn't edit it.
5
27
  const spec_identifier = { __proto__: null, true: 14, false: 14 };
6
28
  const parser = LRParser.deserialize({
7
29
  version: 14,
8
- 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",
9
- 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~",
10
- goto: "#OnPPo![PPPPP![!gP!r![![P![PPPP![!uPPPPPP!{QUOQZTQ`VQaXQe[Qf]Qg^Qh_RmjcWOTVX[]^_jcROTVX[]^_jRcXQkaRnkRbX",
30
+ states: "%^O]QQOOOOQP'#C_'#C_OOQO'#Cf'#CfOwQQO'#CeO|QSO'#CiO]QQO'#CjQ!RQROOO]QQO'#CqOOQP'#C^'#C^O!gQQO,59PO!nQQO,59TOOQP,59U,59UO]QQO,59WO]QQO,59WO]QQO,59WO]QQO,59WO]QQO,59WO!sQRO,59]O!zQRO'#CzOOQO'#Ch'#ChO#UQQO1G.kOOQP1G.o1G.oOOQP1G.r1G.rO#uQRO1G.rO#|QRO1G.rO$oQRO1G.rO$vQRO1G.rOOQP1G.w1G.wO]QQO'#CrO$}QQO,59fOOQP7+$V7+$VO%VQRO,59^OOQO-E6p-E6p",
31
+ stateData: "%k~OjOSkOSlOS~OSPOTPOUPOVPOZVO_TOmQOqSO~OZXO~OrYO~O_]Oa[Ob[Oc^Od_Oh`O~OWnP~P]OpeO~OWkO~P!ROolOWnX~P!ROWnO~Oa[Ob[Oc`id`ig`ih`iW`io`i~O_`i~P#ZO_]O~P#ZO_]Oa[Ob[Oc^Og`ih`iW`io`i~Od`i~P$TOd_O~P$TOolOWna~OWfaofa~P!ROTUjkjlmla~",
32
+ goto: "#UoPPp!`PPPPP!`!lP!x!`!`P!`PPPP!`!{PPPPPPP#RQUOQZTQaVQbXQf[Qg]Qh^Qi_Qj`RoleWOTVX[]^_`leROTVX[]^_`lRdXQmbRpmRcX",
11
33
  nodeNames: "⚠ Program Expression Value Number Date String Boolean ParenthesisEnd Function FunctionIdentifier ParenthesisStart FunctionArguments Variable UnaryExpression ArithOp BinaryExpression ArithOp ArithOp LogicOp LogicOp ParenthesizedExpression",
12
- maxTerm: 33,
34
+ maxTerm: 34,
13
35
  nodeProps: [
14
36
  ["openedBy", 8, "ParenthesisStart"],
15
37
  ["closedBy", 11, "ParenthesisEnd"]
16
38
  ],
17
39
  skippedNodes: [0],
18
40
  repeatNodeCount: 1,
19
- 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~",
20
- tokenizers: [0, 1],
41
+ 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~#[Yj~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~$POk~~$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_PrQ{|8h}!O8h!O!P8h!Q![8h!c!}8h#R#S8h#T#o8hQ8mVrQ{|8h}!O8h!O!P8h!Q![8h!c!}8h#R#S8h#T#o8h~9XOo~R9^VrQ{|8h}!O8h!O!P8h!Q![9s!c!}8h#R#S8h#T#o8hR9zVSPrQ{|8h}!O8h!O!P8h!Q![9s!c!}8h#R#S9s#T#o8h~:fPa~!P!Q:i~:nSl~OY:iZ;'S:i;'S;=`:z<%lO:i~:}P;=`<%l:iR;XVSPrQ{|8h}!O8h!O!P9s!Q![;Q!c!}8h#R#S;Q#T#o8h~;sQc~!_!`;y!`!a<O~<OOc~~<TOd~~<YPc~!_!`;yR<dVrQmP{|8h}!O8h!O!P8h!Q![<]!c!}<]#R#S<]#T#o<]~=OOq~~=TOp~",
42
+ tokenizers: [noOperator, 0, 1],
21
43
  topRules: { "Program": [0, 1] },
22
- specialized: [{ term: 28, get: value => spec_identifier[value] || -1 }],
23
- tokenPrec: 181
44
+ specialized: [{ term: 29, get: value => spec_identifier[value] || -1 }],
45
+ tokenPrec: 201
24
46
  });
25
47
  const QFormulaHighlightConfig = {
26
48
  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,EAAC,CAAC;AAC3D,MAAM,MAAM,GAAG,QAAQ,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,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"}
1
+ {"version":3,"file":"qformula.lang.js","sourceRoot":"","sources":["../../../../src/grammar/generated/qformula.lang.js"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- export const spaces: 25;
2
- export const newline: 26;
3
- export const lineComment: 27;
1
+ export const noOprt: 24;
2
+ export const spaces: 26;
3
+ export const newline: 27;
4
+ export const lineComment: 28;
4
5
  export const Program: 1;
5
6
  export const Expression: 2;
6
7
  export const Value: 3;
@@ -1,3 +1,3 @@
1
1
  // This file was generated by lezer-generator. You probably shouldn't edit it.
2
- export const spaces = 25, newline = 26, lineComment = 27, Program = 1, Expression = 2, Value = 3, Number = 4, Date = 5, String = 6, ParenthesisEnd = 8, Function = 9, FunctionIdentifier = 10, ParenthesisStart = 11, FunctionArguments = 12, Variable = 13, UnaryExpression = 14, BinaryExpression = 16, divide = 17, ParenthesizedExpression = 21;
2
+ export const noOprt = 24, spaces = 26, newline = 27, lineComment = 28, Program = 1, Expression = 2, Value = 3, Number = 4, Date = 5, String = 6, ParenthesisEnd = 8, Function = 9, FunctionIdentifier = 10, ParenthesisStart = 11, FunctionArguments = 12, Variable = 13, UnaryExpression = 14, BinaryExpression = 16, divide = 17, ParenthesizedExpression = 21;
3
3
  //# sourceMappingURL=qformula.lang.terms.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"qformula.lang.terms.js","sourceRoot":"","sources":["../../../../src/grammar/generated/qformula.lang.terms.js"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,CAAC,MACL,MAAM,GAAG,EAAE,EACX,OAAO,GAAG,EAAE,EACZ,WAAW,GAAG,EAAE,EAChB,OAAO,GAAG,CAAC,EACX,UAAU,GAAG,CAAC,EACd,KAAK,GAAG,CAAC,EACT,MAAM,GAAG,CAAC,EACV,IAAI,GAAG,CAAC,EACR,MAAM,GAAG,CAAC,EACV,cAAc,GAAG,CAAC,EAClB,QAAQ,GAAG,CAAC,EACZ,kBAAkB,GAAG,EAAE,EACvB,gBAAgB,GAAG,EAAE,EACrB,iBAAiB,GAAG,EAAE,EACtB,QAAQ,GAAG,EAAE,EACb,eAAe,GAAG,EAAE,EACpB,gBAAgB,GAAG,EAAE,EACrB,MAAM,GAAG,EAAE,EACX,uBAAuB,GAAG,EAAE,CAAA"}
1
+ {"version":3,"file":"qformula.lang.terms.js","sourceRoot":"","sources":["../../../../src/grammar/generated/qformula.lang.terms.js"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,CAAC,MACL,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EAAE,EACX,OAAO,GAAG,EAAE,EACZ,WAAW,GAAG,EAAE,EAChB,OAAO,GAAG,CAAC,EACX,UAAU,GAAG,CAAC,EACd,KAAK,GAAG,CAAC,EACT,MAAM,GAAG,CAAC,EACV,IAAI,GAAG,CAAC,EACR,MAAM,GAAG,CAAC,EACV,cAAc,GAAG,CAAC,EAClB,QAAQ,GAAG,CAAC,EACZ,kBAAkB,GAAG,EAAE,EACvB,gBAAgB,GAAG,EAAE,EACrB,iBAAiB,GAAG,EAAE,EACtB,QAAQ,GAAG,EAAE,EACb,eAAe,GAAG,EAAE,EACpB,gBAAgB,GAAG,EAAE,EACrB,MAAM,GAAG,EAAE,EACX,uBAAuB,GAAG,EAAE,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { ExternalTokenizer } from '@lezer/lr';
2
+ export declare const noOperator: ExternalTokenizer;
@@ -0,0 +1,23 @@
1
+ import { ExternalTokenizer } from '@lezer/lr';
2
+ import { noOprt } from './generated/qformula.lang.terms';
3
+ const space = [
4
+ 9, 10, 11, 12, 13, 32, 133, 160, 5760, 8192, 8193, 8194, 8195, 8196, 8197,
5
+ 8198, 8199, 8200, 8201, 8202, 8232, 8233, 8239, 8287, 12288,
6
+ ];
7
+ const operators = [43, 45, 42, 47, 60, 61, 62];
8
+ const parenteses = [41, 40];
9
+ const comma = 44;
10
+ export const noOperator = new ExternalTokenizer((input, stack) => {
11
+ const { next } = input;
12
+ if (space.indexOf(next) > -1 ||
13
+ parenteses.indexOf(next) > -1 ||
14
+ next === comma)
15
+ return;
16
+ if (operators.indexOf(next) === -1 &&
17
+ next != -1 &&
18
+ !stack.context &&
19
+ stack.canShift(noOprt)) {
20
+ input.acceptToken(noOprt);
21
+ }
22
+ }, { contextual: true });
23
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/grammar/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzD,MAAM,KAAK,GAAG;IACV,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;CAC9D,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/C,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5B,MAAM,KAAK,GAAG,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAC3C,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;IACb,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,IACI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK;QAEd,OAAO;IACX,IACI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,CAAC;QACV,CAAC,KAAK,CAAC,OAAO;QACd,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EACxB;QACE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;KAC7B;AACL,CAAC,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,CACvB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { SyntaxNode } from '@lezer/common';
2
- import { FormulaContext, FormulaInference, FunctionCallAST } from '../constants/interfaces';
2
+ import { FormulaContext, FormulaInference, FunctionCallAST, ProgramPosition } from '../constants/interfaces';
3
3
  import { TransformNodeFNType } from './interfaces';
4
4
  export declare function transformFunctionExpression(program: string, node: SyntaxNode, inference: FormulaInference, context: FormulaContext | undefined, transformNodeFunction: TransformNodeFNType): FunctionCallAST;
5
+ export declare function createPositionASTFromSyntaxNode({ from, to, }: SyntaxNode): ProgramPosition;
@@ -11,6 +11,7 @@ export function transformFunctionExpression(program, node, inference, context, t
11
11
  const parenthesisStart = node.getChild('ParenthesisStart');
12
12
  const parenthesisEnd = node.getChild('ParenthesisEnd');
13
13
  const args = getFunctionArguments(node, parenthesisStart, program, inference, context, transformNodeFunction);
14
+ const functionIdentifier = createPositionASTFromSyntaxNode(fnIdentifier);
14
15
  const baseNode = {
15
16
  type: AST_TYPES.functionCall,
16
17
  name: getNodeValue(program, fnIdentifier),
@@ -19,22 +20,16 @@ export function transformFunctionExpression(program, node, inference, context, t
19
20
  to: node.to,
20
21
  parenthesisStart: !!parenthesisStart,
21
22
  parenthesisEnd: !!parenthesisEnd,
22
- formulaText: fnString,
23
+ functionText: fnString,
24
+ functionIdentifier,
23
25
  };
24
26
  const functionExists = FUNCTION_LIST.includes(fnName);
25
27
  const functionDetail = functionExists
26
28
  ? getFunctionDetail(fnName)
27
29
  : undefined;
28
- let primitive;
29
- try {
30
- primitive = functionDetail
31
- ? getFunctionPrimitive(functionDetail, baseNode.arguments)
32
- : AST_PRIMITIVES.UNKNOWN;
33
- }
34
- catch (error) {
35
- primitive = AST_PRIMITIVES.UNKNOWN;
36
- inference.errorList.push(error);
37
- }
30
+ const primitive = functionDetail
31
+ ? getFunctionPrimitive(functionDetail, baseNode.arguments)
32
+ : AST_PRIMITIVES.UNKNOWN;
38
33
  const resultNode = Object.assign(Object.assign({}, baseNode), { primitive });
39
34
  if (functionExists && (!parenthesisStart || !parenthesisEnd)) {
40
35
  inference.errorList.push(new MissingParenthesisError(Object.assign(Object.assign({}, resultNode), { from: !parenthesisStart ? resultNode.from : resultNode.to })));
@@ -89,4 +84,7 @@ function createCommonASTFromNode(program, node, inference, context, transformNod
89
84
  }
90
85
  return transformNodeFunction(program, node, inference, context);
91
86
  }
87
+ export function createPositionASTFromSyntaxNode({ from, to, }) {
88
+ return { from, to };
89
+ }
92
90
  //# sourceMappingURL=formula-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formula-parser.js","sourceRoot":"","sources":["../../../src/parser/formula-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formula-parser.js","sourceRoot":"","sources":["../../../src/parser/formula-parser.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
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 } from '../errors';
4
+ import { MissingParenthesisError, NotAllowedOperationError } from '../errors';
5
5
  import { primitiveIsIncluded } from '../utils/primitiveFunctions';
6
- import { transformFunctionExpression } from './formula-parser';
6
+ import { createPositionASTFromSyntaxNode, transformFunctionExpression, } from './formula-parser';
7
7
  const PARSER_VERSION = '0.0.0';
8
8
  const LANG_NAME = 'QrveyLang';
9
9
  export function calculateAST(program, tree, context) {
@@ -76,9 +76,33 @@ function transformNode(program, node, inference, context) {
76
76
  inference.flatBody.push(resultNode);
77
77
  return resultNode;
78
78
  }
79
- const VALID_STRING_DATE_BINARY_OPERATORS = ['=', '<>'];
80
- function isValidStringDateBinaryOperation(logicOperator) {
81
- return VALID_STRING_DATE_BINARY_OPERATORS.includes(logicOperator);
79
+ const VALID_OPERATIONS_BY_TYPE = {
80
+ [AST_PRIMITIVES.NUMBER]: [
81
+ '+',
82
+ '-',
83
+ '*',
84
+ '/',
85
+ '<',
86
+ '<=',
87
+ '>',
88
+ '>=',
89
+ '=',
90
+ '<>',
91
+ ],
92
+ [AST_PRIMITIVES.STRING]: ['=', '<>'],
93
+ [AST_PRIMITIVES.DATE]: ['=', '<>'],
94
+ [AST_PRIMITIVES.BOOLEAN]: [],
95
+ [AST_PRIMITIVES.UNKNOWN]: [],
96
+ };
97
+ function operatorIsValidForOperation(operator, leftPrimitive, rightPrimitive) {
98
+ const allowedOperators = calculateValidOperatorsByType(leftPrimitive, rightPrimitive);
99
+ return allowedOperators.includes(operator);
100
+ }
101
+ function calculateValidOperatorsByType(leftPrimitive, rightPrimitive) {
102
+ if (leftPrimitive === rightPrimitive && !Array.isArray(leftPrimitive)) {
103
+ return VALID_OPERATIONS_BY_TYPE[leftPrimitive];
104
+ }
105
+ return [];
82
106
  }
83
107
  function calculateBinaryElements(program, node, left, right) {
84
108
  const leftPrimitive = left === null || left === void 0 ? void 0 : left.primitive;
@@ -87,23 +111,17 @@ function calculateBinaryElements(program, node, left, right) {
87
111
  const arithOperator = node.getChild('ArithOp');
88
112
  const leftIsAValidNumber = leftPrimitive === AST_PRIMITIVES.NUMBER;
89
113
  const rightIsAValidNumber = rightPrimitive === AST_PRIMITIVES.NUMBER;
90
- const leftIsAValidString = leftPrimitive === AST_PRIMITIVES.STRING;
91
- const rightIsAValidString = rightPrimitive === AST_PRIMITIVES.STRING;
92
- const leftIsAValidDate = leftPrimitive === AST_PRIMITIVES.DATE;
93
- const rightIsAValidDate = rightPrimitive === AST_PRIMITIVES.DATE;
94
114
  const operatorNode = (logicOperator !== null && logicOperator !== void 0 ? logicOperator : arithOperator);
95
115
  const operator = getNodeValue(program, operatorNode);
116
+ const operatorPosition = !operatorNode
117
+ ? undefined
118
+ : createPositionASTFromSyntaxNode(operatorNode);
119
+ const validOperators = calculateValidOperatorsByType(leftPrimitive, rightPrimitive);
96
120
  // primitive is number if arithOperator is not null and both left and right are numbers
97
121
  // primitive is boolean if logicOperator is not null and both left and right are booleans
98
122
  let primitive = AST_PRIMITIVES.UNKNOWN;
99
123
  if (logicOperator) {
100
- if ((leftPrimitive === rightPrimitive &&
101
- !leftIsAValidString &&
102
- !leftIsAValidDate) ||
103
- (((leftIsAValidString && rightIsAValidString) ||
104
- (leftIsAValidDate && rightIsAValidDate)) &&
105
- // string and date operation only with allowed operators
106
- isValidStringDateBinaryOperation(operator))) {
124
+ if (operatorIsValidForOperation(operator, leftPrimitive, rightPrimitive)) {
107
125
  primitive = AST_PRIMITIVES.BOOLEAN;
108
126
  }
109
127
  }
@@ -118,25 +136,29 @@ function calculateBinaryElements(program, node, left, right) {
118
136
  return {
119
137
  primitive,
120
138
  operator,
139
+ operatorNode: operatorPosition,
121
140
  hasInvalidError,
141
+ validOperators,
122
142
  };
123
143
  }
124
144
  function transformBinaryExpression(program, node, inference, context) {
125
145
  const [leftNode, rightNode] = node.getChildren('Expression');
126
146
  const left = transformNode(program, leftNode, inference, context);
127
147
  const right = transformNode(program, rightNode, inference, context);
128
- const { primitive, operator, hasInvalidError } = calculateBinaryElements(program, node, left, right);
148
+ const { primitive, operator, operatorNode, hasInvalidError, validOperators, } = calculateBinaryElements(program, node, left, right);
129
149
  const binaryAST = {
130
150
  operator,
151
+ operatorNode,
131
152
  type: AST_TYPES.binaryExpression,
132
153
  left,
133
154
  right,
134
155
  from: node.from,
135
156
  to: node.to,
136
157
  primitive,
158
+ validOperators,
137
159
  };
138
160
  if (hasInvalidError) {
139
- inference.errorList.push(new NotAllowedExpressionError(binaryAST));
161
+ inference.errorList.push(new NotAllowedOperationError(binaryAST));
140
162
  }
141
163
  return binaryAST;
142
164
  }
@@ -147,16 +169,19 @@ function transformUnaryExpression(program, node, inference, context) {
147
169
  const primitive = primitiveIsIncluded(right === null || right === void 0 ? void 0 : right.primitive, AST_PRIMITIVES.NUMBER, AST_PRIMITIVES.BOOLEAN)
148
170
  ? right.primitive
149
171
  : AST_PRIMITIVES.UNKNOWN;
172
+ const validOperators = (right === null || right === void 0 ? void 0 : right.primitive) === AST_PRIMITIVES.NUMBER ? ['+', '-'] : [];
150
173
  const unaryAST = {
151
174
  operator: getNodeValue(program, operator),
175
+ operatorNode: createPositionASTFromSyntaxNode(operator),
152
176
  type: AST_TYPES.unaryExpression,
153
177
  right,
154
178
  from: node.from,
155
179
  to: node.to,
156
180
  primitive,
181
+ validOperators,
157
182
  };
158
183
  if (!rightNode) {
159
- inference.errorList.push(new NotAllowedExpressionError(unaryAST));
184
+ inference.errorList.push(new NotAllowedOperationError(unaryAST));
160
185
  }
161
186
  return unaryAST;
162
187
  }
@@ -167,10 +192,14 @@ function transformParenthesizedExpression(program, node, inference, context) {
167
192
  const parenthesisEnd = node.getChild('ParenthesisEnd');
168
193
  const resultNode = transformNode(program, expressionNode, inference, context);
169
194
  if (!parenthesisStart || !parenthesisEnd) {
195
+ const [from, to] = [
196
+ !parenthesisStart ? node.from : parenthesisStart.from,
197
+ !parenthesisStart ? node.to : parenthesisStart.to,
198
+ ];
170
199
  inference.errorList.push(new MissingParenthesisError({
171
200
  type: AST_TYPES.parenthesisExpression,
172
- from: !parenthesisStart ? node.from : node.to,
173
- to: node.to,
201
+ from,
202
+ to,
174
203
  primitive: (_a = resultNode === null || resultNode === void 0 ? void 0 : resultNode.primitive) !== null && _a !== void 0 ? _a : AST_PRIMITIVES.UNKNOWN,
175
204
  }));
176
205
  }
@@ -1 +1 @@
1
- {"version":3,"file":"json-parser.js","sourceRoot":"","sources":["../../../src/parser/json-parser.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAa,MAAM,cAAc,CAAC;AACpE,OAAO,EACH,YAAY,EACZ,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,kBAAkB,GACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAE/D,MAAM,cAAc,GAAG,OAAO,CAAC;AAC/B,MAAM,SAAS,GAAG,WAAW,CAAC;AAE9B,MAAM,UAAU,YAAY,CACxB,OAAe,EACf,IAAU,EACV,OAAwB;;IAExB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,MAAM,YAAY,GAAG,yBAAyB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG;QACd,SAAS,EAAE,YAAY;QACvB,gBAAgB,EAAE,EAAE;QACpB,gBAAgB,EAAE,EAAE;QACpB,QAAQ,EAAE,EAAE;KACf,CAAC;IACF,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACnE,MAAM,EACF,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,SAAS,EAC3B,gBAAgB,EAChB,QAAQ,GACX,GAAG,SAAS,CAAC;IACd,OAAO;QACH,IAAI,EAAE,SAAS,CAAC,OAAO;QACvB,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,cAAc;QACvB,IAAI;QACJ,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,EAAE,EAAE,SAAS,CAAC,EAAE;QAChB,MAAM;QACN,SAAS;QACT,gBAAgB;QAChB,QAAQ;QACR,SAAS,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,cAAc,CAAC,OAAO;KACvD,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAClB,OAAe,EACf,IAAmC,EACnC,SAA2B,EAC3B,OAAwB;IAExB,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,UAAiC,CAAC;IACtC,QAAQ,IAAI,CAAC,IAAI,EAAE;QACf,KAAK,kBAAkB;YACnB,UAAU,GAAG,yBAAyB,CAClC,OAAO,EACP,IAAI,EACJ,SAAS,EACT,OAAO,CACV,CAAC;YACF,MAAM;QACV,KAAK,iBAAiB;YAClB,UAAU,GAAG,wBAAwB,CACjC,OAAO,EACP,IAAI,EACJ,SAAS,EACT,OAAO,CACV,CAAC;YACF,MAAM;QACV,KAAK,yBAAyB;YAC1B,UAAU,GAAG,gCAAgC,CACzC,OAAO,EACP,IAAI,EACJ,SAAS,EACT,OAAO,CACV,CAAC;YACF,MAAM;QACV,KAAK,UAAU;YACX,UAAU,GAAG,2BAA2B,CACpC,OAAO,EACP,IAAI,EACJ,SAAS,EACT,OAAO,EACP,aAAa,CAChB,CAAC;YACF,MAAM;QACV,KAAK,QAAQ;YACT,UAAU,GAAG,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACjD,MAAM;QACV,KAAK,MAAM;YACP,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC/C,MAAM;QACV,KAAK,QAAQ;YACT,UAAU,GAAG,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACjD,MAAM;QACV,KAAK,SAAS;YACV,UAAU,GAAG,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAClD,MAAM;QACV,KAAK,UAAU;YACX,UAAU,GAAG,sBAAsB,CAC/B,OAAO,EACP,IAAI,EACJ,SAAS,EACT,OAAO,CACV,CAAC;YACF,MAAM;QACV;YACI,OAAO,IAAI,CAAC,UAAU;gBAClB,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC;gBAC7D,CAAC,CAAC,SAAS,CAAC;KACvB;IACD,IAAI,UAAU,KAAK,SAAS;QAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClE,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,MAAM,kCAAkC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvD,SAAS,gCAAgC,CAAC,aAAqB;IAC3D,OAAO,kCAAkC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,uBAAuB,CAC5B,OAAe,EACf,IAAgB,EAChB,IAAe,EACf,KAAgB;IAEhB,MAAM,aAAa,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,CAAC;IACtC,MAAM,cAAc,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,CAAC;IAExC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAE/C,MAAM,kBAAkB,GAAG,aAAa,KAAK,cAAc,CAAC,MAAM,CAAC;IACnE,MAAM,mBAAmB,GAAG,cAAc,KAAK,cAAc,CAAC,MAAM,CAAC;IACrE,MAAM,kBAAkB,GAAG,aAAa,KAAK,cAAc,CAAC,MAAM,CAAC;IACnE,MAAM,mBAAmB,GAAG,cAAc,KAAK,cAAc,CAAC,MAAM,CAAC;IACrE,MAAM,gBAAgB,GAAG,aAAa,KAAK,cAAc,CAAC,IAAI,CAAC;IAC/D,MAAM,iBAAiB,GAAG,cAAc,KAAK,cAAc,CAAC,IAAI,CAAC;IAEjE,MAAM,YAAY,GAAG,CAAC,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,aAAa,CAAe,CAAC;IACpE,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAErD,uFAAuF;IACvF,yFAAyF;IACzF,IAAI,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC;IACvC,IAAI,aAAa,EAAE;QACf,IACI,CAAC,aAAa,KAAK,cAAc;YAC7B,CAAC,kBAAkB;YACnB,CAAC,gBAAgB,CAAC;YACtB,CAAC,CAAC,CAAC,kBAAkB,IAAI,mBAAmB,CAAC;gBACzC,CAAC,gBAAgB,IAAI,iBAAiB,CAAC,CAAC;gBACxC,wDAAwD;gBACxD,gCAAgC,CAAC,QAAQ,CAAC,CAAC,EACjD;YACE,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC;SACtC;KACJ;SAAM,IAAI,aAAa,IAAI,kBAAkB,IAAI,mBAAmB,EAAE;QACnE,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC;KACrC;IAED,MAAM,eAAe,GACjB,CAAC,IAAI;QACL,CAAC,KAAK;QACN,CAAC,YAAY;QACb,CAAC,aAAa,IAAI,CAAC,kBAAkB,IAAI,CAAC,mBAAmB,CAAC;QAC9D,SAAS,KAAK,cAAc,CAAC,OAAO,CAAC;IAEzC,OAAO;QACH,SAAS;QACT,QAAQ;QACR,eAAe;KAClB,CAAC;AACN,CAAC;AAED,SAAS,yBAAyB,CAC9B,OAAe,EACf,IAAgB,EAChB,SAA2B,EAC3B,OAAwB;IAExB,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAE7D,MAAM,IAAI,GAAG,aAAa,CACtB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,OAAO,CACG,CAAC;IACf,MAAM,KAAK,GAAG,aAAa,CACvB,OAAO,EACP,SAAS,EACT,SAAS,EACT,OAAO,CACG,CAAC;IAEf,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,uBAAuB,CACpE,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,KAAK,CACR,CAAC;IAEF,MAAM,SAAS,GAAG;QACd,QAAQ;QACR,IAAI,EAAE,SAAS,CAAC,gBAAgB;QAChC,IAAI;QACJ,KAAK;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,SAAS;KACZ,CAAC;IAEF,IAAI,eAAe,EAAE;QACjB,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC,SAAS,CAAC,CAAC,CAAC;KACtE;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,wBAAwB,CAC7B,OAAe,EACf,IAAgB,EAChB,SAA2B,EAC3B,OAAwB;IAExB,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAe,CAAC;IACxD,MAAM,KAAK,GAAG,aAAa,CACvB,OAAO,EACP,SAAS,EACT,SAAS,EACT,OAAO,CACG,CAAC;IACf,MAAM,SAAS,GAAG,mBAAmB,CACjC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,EAChB,cAAc,CAAC,MAAM,EACrB,cAAc,CAAC,OAAO,CACzB;QACG,CAAC,CAAC,KAAK,CAAC,SAAS;QACjB,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC;IAC7B,MAAM,QAAQ,GAAG;QACb,QAAQ,EAAE,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC;QACzC,IAAI,EAAE,SAAS,CAAC,eAAe;QAC/B,KAAK;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,SAAS;KACZ,CAAC;IAEF,IAAI,CAAC,SAAS,EAAE;QACZ,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC;KACrE;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,gCAAgC,CACrC,OAAe,EACf,IAAgB,EAChB,SAA2B,EAC3B,OAAwB;;IAExB,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,aAAa,CAC5B,OAAO,EACP,cAAc,EACd,SAAS,EACT,OAAO,CACV,CAAC;IACF,IAAI,CAAC,gBAAgB,IAAI,CAAC,cAAc,EAAE;QACtC,SAAS,CAAC,SAAS,CAAC,IAAI,CACpB,IAAI,uBAAuB,CAAC;YACxB,IAAI,EAAE,SAAS,CAAC,qBAAqB;YACrC,IAAI,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;YAC7C,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,SAAS,EAAE,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS,mCAAI,cAAc,CAAC,OAAO;SAC7D,CAAC,CACL,CAAC;KACL;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,kBAAkB,CACvB,EAAE,IAAI,EAAE,EAAE,EAAc,EACxB,QAAwB,EACxB,KAAmB;IAEnB,OAAO;QACH,IAAI,EAAE,SAAS,CAAC,OAAO;QACvB,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,EAAE;QACF,SAAS,EAAE,QAAQ;KACtB,CAAC;AACN,CAAC;AAED,wCAAwC;AACxC,MAAM,WAAW,GACb,0FAA0F,CAAC;AAE/F,SAAS,kBAAkB,CAAC,OAAe,EAAE,IAAgB;IACzD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE5C,IAAI,CAAC,SAAS;QAAE,OAAO,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE3D,6DAA6D;IAC7D,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,GACnE,SAAS,CAAC;IAEd,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG;QAC7B,MAAM,CAAC,QAAQ,CAAC;QAChB,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;QACrB,MAAM,CAAC,OAAO,CAAC;QACf,MAAM,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,CAAC,CAAC;QACrB,MAAM,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,CAAC,CAAC;QACpB,MAAM,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,CAAC,CAAC;KACvB,CAAC;IAEF,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACzD,IAAI,EAAE,GAAG,kBAAkB;QAAE,OAAO,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAExE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;QAAE,OAAO,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAExE,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,OAAO,kBAAkB,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAe,EAAE,IAAgB;IAC3D,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,kBAAkB,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAe,EAAE,IAAgB;IAC3D,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACtD,OAAO,kBAAkB,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe,EAAE,IAAgB;IAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1C,OAAO,kBAAkB,CAAC,IAAI,EAAE,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,sBAAsB,CAC3B,OAAe,EACf,IAAgB,EAChB,SAA2B,EAC3B,OAAwB;;IAExB,IAAI,aAAa,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,eAAe,GAAG,kBAAkB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;IACtD,IAAI,YAAY,KAAK,OAAO;QAAE,aAAa,GAAG,KAAK,aAAa,IAAI,CAAC;IAErE,MAAM,wBAAwB,GAAG,SAAS,CAAC,gBAAgB;SACtD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChB,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE7B,IAAI,CAAC,wBAAwB;QACzB,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAC3B,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI;YACf,EAAE,EAAE,aAAa;YACjB,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,cAAc,CAAC,MAAM;SAC9B,CACJ,CAAC;IAEN,OAAO;QACH,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,SAAS,EAAE,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,mCAAI,cAAc,CAAC,OAAO;KAC7D,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"json-parser.js","sourceRoot":"","sources":["../../../src/parser/json-parser.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAa,MAAM,cAAc,CAAC;AACpE,OAAO,EACH,YAAY,EACZ,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,kBAAkB,GACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACH,+BAA+B,EAC/B,2BAA2B,GAC9B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,cAAc,GAAG,OAAO,CAAC;AAC/B,MAAM,SAAS,GAAG,WAAW,CAAC;AAE9B,MAAM,UAAU,YAAY,CACxB,OAAe,EACf,IAAU,EACV,OAAwB;;IAExB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,MAAM,YAAY,GAAG,yBAAyB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG;QACd,SAAS,EAAE,YAAY;QACvB,gBAAgB,EAAE,EAAE;QACpB,gBAAgB,EAAE,EAAE;QACpB,QAAQ,EAAE,EAAE;KACf,CAAC;IACF,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACnE,MAAM,EACF,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,SAAS,EAC3B,gBAAgB,EAChB,QAAQ,GACX,GAAG,SAAS,CAAC;IACd,OAAO;QACH,IAAI,EAAE,SAAS,CAAC,OAAO;QACvB,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,cAAc;QACvB,IAAI;QACJ,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,EAAE,EAAE,SAAS,CAAC,EAAE;QAChB,MAAM;QACN,SAAS;QACT,gBAAgB;QAChB,QAAQ;QACR,SAAS,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,cAAc,CAAC,OAAO;KACvD,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAClB,OAAe,EACf,IAAmC,EACnC,SAA2B,EAC3B,OAAwB;IAExB,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,UAAiC,CAAC;IACtC,QAAQ,IAAI,CAAC,IAAI,EAAE;QACf,KAAK,kBAAkB;YACnB,UAAU,GAAG,yBAAyB,CAClC,OAAO,EACP,IAAI,EACJ,SAAS,EACT,OAAO,CACV,CAAC;YACF,MAAM;QACV,KAAK,iBAAiB;YAClB,UAAU,GAAG,wBAAwB,CACjC,OAAO,EACP,IAAI,EACJ,SAAS,EACT,OAAO,CACV,CAAC;YACF,MAAM;QACV,KAAK,yBAAyB;YAC1B,UAAU,GAAG,gCAAgC,CACzC,OAAO,EACP,IAAI,EACJ,SAAS,EACT,OAAO,CACV,CAAC;YACF,MAAM;QACV,KAAK,UAAU;YACX,UAAU,GAAG,2BAA2B,CACpC,OAAO,EACP,IAAI,EACJ,SAAS,EACT,OAAO,EACP,aAAa,CAChB,CAAC;YACF,MAAM;QACV,KAAK,QAAQ;YACT,UAAU,GAAG,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACjD,MAAM;QACV,KAAK,MAAM;YACP,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC/C,MAAM;QACV,KAAK,QAAQ;YACT,UAAU,GAAG,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACjD,MAAM;QACV,KAAK,SAAS;YACV,UAAU,GAAG,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAClD,MAAM;QACV,KAAK,UAAU;YACX,UAAU,GAAG,sBAAsB,CAC/B,OAAO,EACP,IAAI,EACJ,SAAS,EACT,OAAO,CACV,CAAC;YACF,MAAM;QACV;YACI,OAAO,IAAI,CAAC,UAAU;gBAClB,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC;gBAC7D,CAAC,CAAC,SAAS,CAAC;KACvB;IACD,IAAI,UAAU,KAAK,SAAS;QAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClE,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,MAAM,wBAAwB,GAAqC;IAC/D,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;QACrB,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;KACP;IACD,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;IACpC,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;IAClC,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE;IAC5B,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE;CAC/B,CAAC;AAEF,SAAS,2BAA2B,CAChC,QAAgB,EAChB,aAAwB,EACxB,cAAyB;IAEzB,MAAM,gBAAgB,GAAG,6BAA6B,CAClD,aAAa,EACb,cAAc,CACjB,CAAC;IACF,OAAO,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,6BAA6B,CAClC,aAAwB,EACxB,cAAyB;IAEzB,IAAI,aAAa,KAAK,cAAc,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QACnE,OAAO,wBAAwB,CAAC,aAAa,CAAC,CAAC;KAClD;IACD,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAC5B,OAAe,EACf,IAAgB,EAChB,IAAe,EACf,KAAgB;IAQhB,MAAM,aAAa,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,CAAC;IACtC,MAAM,cAAc,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,CAAC;IAExC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAE/C,MAAM,kBAAkB,GAAG,aAAa,KAAK,cAAc,CAAC,MAAM,CAAC;IACnE,MAAM,mBAAmB,GAAG,cAAc,KAAK,cAAc,CAAC,MAAM,CAAC;IAErE,MAAM,YAAY,GAAG,CAAC,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,aAAa,CAAe,CAAC;IACpE,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,CAAC,YAAY;QAClC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,+BAA+B,CAAC,YAAY,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,6BAA6B,CAChD,aAAa,EACb,cAAc,CACjB,CAAC;IAEF,uFAAuF;IACvF,yFAAyF;IACzF,IAAI,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC;IACvC,IAAI,aAAa,EAAE;QACf,IACI,2BAA2B,CAAC,QAAQ,EAAE,aAAa,EAAE,cAAc,CAAC,EACtE;YACE,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC;SACtC;KACJ;SAAM,IAAI,aAAa,IAAI,kBAAkB,IAAI,mBAAmB,EAAE;QACnE,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC;KACrC;IAED,MAAM,eAAe,GACjB,CAAC,IAAI;QACL,CAAC,KAAK;QACN,CAAC,YAAY;QACb,CAAC,aAAa,IAAI,CAAC,kBAAkB,IAAI,CAAC,mBAAmB,CAAC;QAC9D,SAAS,KAAK,cAAc,CAAC,OAAO,CAAC;IAEzC,OAAO;QACH,SAAS;QACT,QAAQ;QACR,YAAY,EAAE,gBAAgB;QAC9B,eAAe;QACf,cAAc;KACjB,CAAC;AACN,CAAC;AAED,SAAS,yBAAyB,CAC9B,OAAe,EACf,IAAgB,EAChB,SAA2B,EAC3B,OAAwB;IAExB,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAE7D,MAAM,IAAI,GAAG,aAAa,CACtB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,OAAO,CACG,CAAC;IACf,MAAM,KAAK,GAAG,aAAa,CACvB,OAAO,EACP,SAAS,EACT,SAAS,EACT,OAAO,CACG,CAAC;IAEf,MAAM,EACF,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,cAAc,GACjB,GAAG,uBAAuB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAExD,MAAM,SAAS,GAAG;QACd,QAAQ;QACR,YAAY;QACZ,IAAI,EAAE,SAAS,CAAC,gBAAgB;QAChC,IAAI;QACJ,KAAK;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,SAAS;QACT,cAAc;KACjB,CAAC;IAEF,IAAI,eAAe,EAAE;QACjB,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC;KACrE;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,wBAAwB,CAC7B,OAAe,EACf,IAAgB,EAChB,SAA2B,EAC3B,OAAwB;IAExB,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAe,CAAC;IACxD,MAAM,KAAK,GAAG,aAAa,CACvB,OAAO,EACP,SAAS,EACT,SAAS,EACT,OAAO,CACG,CAAC;IACf,MAAM,SAAS,GAAG,mBAAmB,CACjC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,EAChB,cAAc,CAAC,MAAM,EACrB,cAAc,CAAC,OAAO,CACzB;QACG,CAAC,CAAC,KAAK,CAAC,SAAS;QACjB,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC;IAE7B,MAAM,cAAc,GAChB,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,MAAK,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,QAAQ,GAAG;QACb,QAAQ,EAAE,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC;QACzC,YAAY,EAAE,+BAA+B,CAAC,QAAQ,CAAC;QACvD,IAAI,EAAE,SAAS,CAAC,eAAe;QAC/B,KAAK;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,SAAS;QACT,cAAc;KACjB,CAAC;IAEF,IAAI,CAAC,SAAS,EAAE;QACZ,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC;KACpE;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,gCAAgC,CACrC,OAAe,EACf,IAAgB,EAChB,SAA2B,EAC3B,OAAwB;;IAExB,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,aAAa,CAC5B,OAAO,EACP,cAAc,EACd,SAAS,EACT,OAAO,CACV,CAAC;IACF,IAAI,CAAC,gBAAgB,IAAI,CAAC,cAAc,EAAE;QACtC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG;YACf,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI;YACrD,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE;SACpD,CAAC;QACF,SAAS,CAAC,SAAS,CAAC,IAAI,CACpB,IAAI,uBAAuB,CAAC;YACxB,IAAI,EAAE,SAAS,CAAC,qBAAqB;YACrC,IAAI;YACJ,EAAE;YACF,SAAS,EAAE,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS,mCAAI,cAAc,CAAC,OAAO;SAC7D,CAAC,CACL,CAAC;KACL;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,kBAAkB,CACvB,EAAE,IAAI,EAAE,EAAE,EAAc,EACxB,QAAwB,EACxB,KAAmB;IAEnB,OAAO;QACH,IAAI,EAAE,SAAS,CAAC,OAAO;QACvB,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,EAAE;QACF,SAAS,EAAE,QAAQ;KACtB,CAAC;AACN,CAAC;AAED,wCAAwC;AACxC,MAAM,WAAW,GACb,0FAA0F,CAAC;AAE/F,SAAS,kBAAkB,CAAC,OAAe,EAAE,IAAgB;IACzD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE5C,IAAI,CAAC,SAAS;QAAE,OAAO,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE3D,6DAA6D;IAC7D,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,GACnE,SAAS,CAAC;IAEd,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG;QAC7B,MAAM,CAAC,QAAQ,CAAC;QAChB,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;QACrB,MAAM,CAAC,OAAO,CAAC;QACf,MAAM,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,CAAC,CAAC;QACrB,MAAM,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,CAAC,CAAC;QACpB,MAAM,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,CAAC,CAAC;KACvB,CAAC;IAEF,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACzD,IAAI,EAAE,GAAG,kBAAkB;QAAE,OAAO,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAExE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;QAAE,OAAO,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAExE,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,OAAO,kBAAkB,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAe,EAAE,IAAgB;IAC3D,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,kBAAkB,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAe,EAAE,IAAgB;IAC3D,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACtD,OAAO,kBAAkB,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe,EAAE,IAAgB;IAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1C,OAAO,kBAAkB,CAAC,IAAI,EAAE,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,sBAAsB,CAC3B,OAAe,EACf,IAAgB,EAChB,SAA2B,EAC3B,OAAwB;;IAExB,IAAI,aAAa,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,eAAe,GAAG,kBAAkB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;IACtD,IAAI,YAAY,KAAK,OAAO;QAAE,aAAa,GAAG,KAAK,aAAa,IAAI,CAAC;IAErE,MAAM,wBAAwB,GAAG,SAAS,CAAC,gBAAgB;SACtD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChB,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE7B,IAAI,CAAC,wBAAwB;QACzB,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAC3B,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI;YACf,EAAE,EAAE,aAAa;YACjB,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,cAAc,CAAC,MAAM;SAC9B,CACJ,CAAC;IAEN,OAAO;QACH,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,SAAS,EAAE,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,mCAAI,cAAc,CAAC,OAAO;KAC7D,CAAC;AACN,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { ENGINES } from '../constants';
2
2
  import { ProcessNodeResult, VariableAST, FormulaContext } from '../constants/interfaces';
3
- export declare function columnTranspilation(engine: ENGINES, { value, context }: VariableAST, globalContext?: FormulaContext): ProcessNodeResult;
3
+ export declare function columnTranspilation(engine: ENGINES, expression: VariableAST, globalContext?: FormulaContext): ProcessNodeResult;
@@ -1,7 +1,13 @@
1
1
  import { ELASTICSEARCH_SCRIPT_NAMES, AST_PRIMITIVES, AST_TYPES, ENGINES, } from '../constants';
2
- export function columnTranspilation(engine, { value, context }, globalContext) {
2
+ export function columnTranspilation(engine, expression, globalContext) {
3
+ const { value, context } = expression;
3
4
  if (!context || !context.replacement)
4
- return { value, type: AST_TYPES.column };
5
+ return {
6
+ value,
7
+ type: AST_TYPES.column,
8
+ dataType: AST_PRIMITIVES.UNKNOWN,
9
+ node: expression,
10
+ };
5
11
  const columnForEngine = {
6
12
  [ENGINES.ELASTICSEARCH]: elasticsearch,
7
13
  [ENGINES.SNOWFLAKE]: sql,
@@ -9,7 +15,12 @@ export function columnTranspilation(engine, { value, context }, globalContext) {
9
15
  [ENGINES.POSTGRESQL]: sql,
10
16
  };
11
17
  const result = columnForEngine[engine](context, globalContext);
12
- return { value: result, dataType: context.type, type: AST_TYPES.column };
18
+ return {
19
+ value: result,
20
+ dataType: context.type,
21
+ type: AST_TYPES.column,
22
+ node: expression,
23
+ };
13
24
  }
14
25
  function elasticsearch(context, globalContext) {
15
26
  const value = `GET_VALUE(doc['${context.replacement}'])`;
@@ -1 +1 @@
1
- {"version":3,"file":"columnTranspilation.js","sourceRoot":"","sources":["../../../src/transpiler/columnTranspilation.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,0BAA0B,EAC1B,cAAc,EACd,SAAS,EACT,OAAO,GACV,MAAM,cAAc,CAAC;AAQtB,MAAM,UAAU,mBAAmB,CAC/B,MAAe,EACf,EAAE,KAAK,EAAE,OAAO,EAAe,EAC/B,aAA8B;IAE9B,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;IAC7C,MAAM,eAAe,GAAG;QACpB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,aAAa;QACtC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG;QACxB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG;QACvB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,GAAG;KAC5B,CAAC;IACF,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;AAC7E,CAAC;AAED,SAAS,aAAa,CAClB,OAAkC,EAClC,aAA8B;IAE9B,MAAM,KAAK,GAAG,kBAAkB,OAAO,CAAC,WAAW,KAAK,CAAC;IACzD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,MAAK,cAAc,CAAC,IAAI,KAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,CAAA,EAAE;QAClE,MAAM,MAAM,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,CAAC,MAAM,CAAC;QAC9C,OAAO,GAAG,0BAA0B,CAAC,WAAW,IAAI,KAAK,MAAM,MAAM,IAAI,CAAC;KAC7E;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,GAAG,CAAC,OAAkC;IAC3C,OAAO,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"columnTranspilation.js","sourceRoot":"","sources":["../../../src/transpiler/columnTranspilation.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,0BAA0B,EAC1B,cAAc,EACd,SAAS,EACT,OAAO,GACV,MAAM,cAAc,CAAC;AAQtB,MAAM,UAAU,mBAAmB,CAC/B,MAAe,EACf,UAAuB,EACvB,aAA8B;IAE9B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;IACtC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW;QAChC,OAAO;YACH,KAAK;YACL,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,QAAQ,EAAE,cAAc,CAAC,OAAO;YAChC,IAAI,EAAE,UAAU;SACnB,CAAC;IACN,MAAM,eAAe,GAAG;QACpB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,aAAa;QACtC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG;QACxB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG;QACvB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,GAAG;KAC5B,CAAC;IACF,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC/D,OAAO;QACH,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,OAAO,CAAC,IAAI;QACtB,IAAI,EAAE,SAAS,CAAC,MAAM;QACtB,IAAI,EAAE,UAAU;KACnB,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAClB,OAAkC,EAClC,aAA8B;IAE9B,MAAM,KAAK,GAAG,kBAAkB,OAAO,CAAC,WAAW,KAAK,CAAC;IACzD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,MAAK,cAAc,CAAC,IAAI,KAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,CAAA,EAAE;QAClE,MAAM,MAAM,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,CAAC,MAAM,CAAC;QAC9C,OAAO,GAAG,0BAA0B,CAAC,WAAW,IAAI,KAAK,MAAM,MAAM,IAAI,CAAC;KAC7E;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,GAAG,CAAC,OAAkC;IAC3C,OAAO,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC;AACtC,CAAC"}
@@ -7,6 +7,7 @@ import { columnTranspilation } from './columnTranspilation';
7
7
  import { unshiftCustomFunctions } from './unshiftCustomFunctions';
8
8
  import { FormulaErrorList } from './formulaErrorList';
9
9
  import { getValueScript } from '../utils/elasticsearch/scripts';
10
+ import { ERROR_DICTIONARY } from '../errors/dictionary';
10
11
  export class Transpiler {
11
12
  constructor(ast, engine, globalContext) {
12
13
  this.ast = ast;
@@ -47,7 +48,12 @@ export class Transpiler {
47
48
  [AST_TYPES.functionCall]: this.functionCall,
48
49
  };
49
50
  if (!nodes[type])
50
- return { value: null, type, dataType: AST_PRIMITIVES.UNKNOWN };
51
+ return {
52
+ value: null,
53
+ type,
54
+ dataType: AST_PRIMITIVES.UNKNOWN,
55
+ node: expression,
56
+ };
51
57
  return nodes[type].call(this, expression);
52
58
  }
53
59
  catch (error) {
@@ -56,6 +62,7 @@ export class Transpiler {
56
62
  value: '',
57
63
  type: AST_TYPES.unknown,
58
64
  dataType: AST_PRIMITIVES.UNKNOWN,
65
+ node: expression,
59
66
  };
60
67
  }
61
68
  }
@@ -76,9 +83,11 @@ export class Transpiler {
76
83
  }
77
84
  return columnTranspilation(this.engine, data, this.globalContext);
78
85
  }
79
- literal({ value, dataType, type }) {
86
+ literal(expression) {
87
+ const { dataType, type } = expression;
88
+ let { value } = expression;
80
89
  if (value === 'null')
81
- return { value, dataType, type };
90
+ return { value, dataType, type, node: expression };
82
91
  if (dataType === AST_PRIMITIVES.DATE)
83
92
  value = customDateCast(this.engine)(value);
84
93
  if (dataType === AST_PRIMITIVES.STRING)
@@ -87,24 +96,44 @@ export class Transpiler {
87
96
  dataType === AST_PRIMITIVES.NUMBER;
88
97
  if (isElasticsearchNumber && isLongNumber(value))
89
98
  value = `${value}L`;
90
- return { value, dataType, type };
99
+ return { value, dataType, type, node: expression };
91
100
  }
92
101
  unaryExpression(expression) {
93
102
  if (!expression.right)
94
- return { value: '', type: expression.type };
103
+ return {
104
+ value: '',
105
+ type: expression.type,
106
+ dataType: AST_PRIMITIVES.STRING,
107
+ node: expression,
108
+ };
95
109
  const { value: rightResult } = this.processNode(expression.right);
96
110
  const value = `(${expression.operator} ${rightResult})`;
97
- return { value, dataType: expression.primitive, type: expression.type };
111
+ return {
112
+ value,
113
+ dataType: expression.primitive,
114
+ type: expression.type,
115
+ node: expression,
116
+ };
98
117
  }
99
118
  binaryExpression(expression) {
100
119
  var _a, _b;
101
120
  const { left, operator, right, type } = expression;
102
121
  if (!left || !right)
103
- return { value: '', type };
122
+ return {
123
+ value: '',
124
+ type,
125
+ dataType: AST_PRIMITIVES.STRING,
126
+ node: expression,
127
+ };
104
128
  const { value: leftResult } = this.processNode(left);
105
129
  const { value: rightResult } = this.processNode(right);
106
130
  const value = `(${leftResult} ${(_b = (_a = CustomOperators[this.engine]) === null || _a === void 0 ? void 0 : _a[operator]) !== null && _b !== void 0 ? _b : operator} ${rightResult})`;
107
- return { value, dataType: expression.primitive, type };
131
+ return {
132
+ value,
133
+ dataType: expression.primitive,
134
+ type,
135
+ node: expression,
136
+ };
108
137
  }
109
138
  functionCall(node) {
110
139
  const { name, arguments: args } = node;
@@ -116,21 +145,71 @@ export class Transpiler {
116
145
  this.customFunctionList.add(customFunction);
117
146
  const parameters = args.map((param) => this.processNode(param));
118
147
  const value = this.executer(func, parameters, node);
119
- return { value, dataType: node.primitive, type: node.type };
148
+ return { value, dataType: node.primitive, type: node.type, node };
120
149
  }
121
150
  executer(func, args, node) {
122
- validateFuncStructure(node, func, args);
151
+ validateFuncStructure(func, args, node);
123
152
  args = args.map((item) => item.value);
124
153
  return func.transpiler[this.engine](...args);
125
154
  }
126
155
  }
127
156
  export function TranspileAST(ast, engine, context) {
128
- var _a, _b, _c, _d, _e;
157
+ var _a, _b;
129
158
  const hasSyntaxErrors = ((_b = (_a = ast.errors) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0;
130
159
  const transpiler = new Transpiler(ast, engine, context);
131
160
  const transpileResult = transpiler.get();
132
- return Object.assign(Object.assign({}, transpileResult), { valid: transpileResult.valid && !hasSyntaxErrors, errors: transpileResult.errors || (ast.errors && ((_c = ast.errors) === null || _c === void 0 ? void 0 : _c.length) > 0)
133
- ? [...((_d = transpileResult.errors) !== null && _d !== void 0 ? _d : []), ...((_e = ast.errors) !== null && _e !== void 0 ? _e : [])]
134
- : undefined });
161
+ const errors = postTranspileErrors(transpileResult.errors, ast.errors);
162
+ return Object.assign(Object.assign({}, transpileResult), { valid: transpileResult.valid && !hasSyntaxErrors, errors });
163
+ }
164
+ function postTranspileErrors(transpiledErrors, astErrors) {
165
+ const baseErrors = joinErrors(transpiledErrors, astErrors);
166
+ if (!baseErrors)
167
+ return undefined;
168
+ const postProcessedErrors = postProcessErrors(baseErrors);
169
+ const errors = removeOverlappingErrors(postProcessedErrors);
170
+ return errors;
171
+ }
172
+ function joinErrors(transpiledErrors, astErrors) {
173
+ return transpiledErrors || (astErrors && (astErrors === null || astErrors === void 0 ? void 0 : astErrors.length) > 0)
174
+ ? [...(transpiledErrors !== null && transpiledErrors !== void 0 ? transpiledErrors : []), ...(astErrors !== null && astErrors !== void 0 ? astErrors : [])]
175
+ : undefined;
176
+ }
177
+ function postProcessErrors(errors) {
178
+ const resultErrors = [];
179
+ errors.forEach((error) => {
180
+ var _a;
181
+ if (!error.node)
182
+ return; // clean those errors without node
183
+ if (((_a = error.node) === null || _a === void 0 ? void 0 : _a.type) === AST_TYPES.functionCall &&
184
+ error.node.functionIdentifier) {
185
+ const functionIdentifier = error.node
186
+ .functionIdentifier;
187
+ error.node.from = functionIdentifier.from;
188
+ error.node.to = functionIdentifier.to;
189
+ }
190
+ else if (error.code === ERROR_DICTIONARY.notAllowedOperation.code) {
191
+ const nodePosition = error.node
192
+ .operatorNode;
193
+ if (nodePosition) {
194
+ error.node.from = nodePosition.from;
195
+ error.node.to = nodePosition.to;
196
+ }
197
+ }
198
+ resultErrors.push(error);
199
+ });
200
+ return resultErrors;
201
+ }
202
+ function removeOverlappingErrors(baseErrors) {
203
+ const errors = [];
204
+ for (const baseError of baseErrors) {
205
+ const existError = errors.some((error) => error.node &&
206
+ baseError.node &&
207
+ error.node.from >= baseError.node.from &&
208
+ error.node.to <= baseError.node.to);
209
+ if (!existError) {
210
+ errors.push(baseError);
211
+ }
212
+ }
213
+ return errors;
135
214
  }
136
215
  //# sourceMappingURL=index.js.map