rawsql-ts 0.1.0-beta.7 → 0.1.0-beta.9

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 (109) hide show
  1. package/README.md +58 -38
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/models/BinarySelectQuery.js +9 -8
  6. package/dist/models/BinarySelectQuery.js.map +1 -1
  7. package/dist/models/SimpleSelectQuery.js +10 -8
  8. package/dist/models/SimpleSelectQuery.js.map +1 -1
  9. package/dist/parsers/CommandExpressionParser.d.ts +1 -1
  10. package/dist/parsers/CommandExpressionParser.js +6 -6
  11. package/dist/parsers/CommandExpressionParser.js.map +1 -1
  12. package/dist/parsers/CommonTableParser.d.ts +2 -2
  13. package/dist/parsers/CommonTableParser.js +7 -5
  14. package/dist/parsers/CommonTableParser.js.map +1 -1
  15. package/dist/parsers/ForClauseParser.d.ts +2 -2
  16. package/dist/parsers/ForClauseParser.js +5 -3
  17. package/dist/parsers/ForClauseParser.js.map +1 -1
  18. package/dist/parsers/FromClauseParser.d.ts +2 -2
  19. package/dist/parsers/FromClauseParser.js +6 -4
  20. package/dist/parsers/FromClauseParser.js.map +1 -1
  21. package/dist/parsers/FunctionExpressionParser.d.ts +1 -1
  22. package/dist/parsers/FunctionExpressionParser.js +8 -8
  23. package/dist/parsers/FunctionExpressionParser.js.map +1 -1
  24. package/dist/parsers/GroupByParser.d.ts +2 -2
  25. package/dist/parsers/GroupByParser.js +6 -4
  26. package/dist/parsers/GroupByParser.js.map +1 -1
  27. package/dist/parsers/HavingParser.d.ts +2 -2
  28. package/dist/parsers/HavingParser.js +6 -4
  29. package/dist/parsers/HavingParser.js.map +1 -1
  30. package/dist/parsers/IdentifierParser.d.ts +1 -1
  31. package/dist/parsers/IdentifierParser.js +1 -1
  32. package/dist/parsers/IdentifierParser.js.map +1 -1
  33. package/dist/parsers/JoinClauseParser.js +2 -2
  34. package/dist/parsers/JoinClauseParser.js.map +1 -1
  35. package/dist/parsers/LimitClauseParser.d.ts +2 -2
  36. package/dist/parsers/LimitClauseParser.js +7 -5
  37. package/dist/parsers/LimitClauseParser.js.map +1 -1
  38. package/dist/parsers/LiteralParser.d.ts +1 -1
  39. package/dist/parsers/LiteralParser.js +1 -1
  40. package/dist/parsers/LiteralParser.js.map +1 -1
  41. package/dist/parsers/OrderByClauseParser.d.ts +2 -2
  42. package/dist/parsers/OrderByClauseParser.js +6 -4
  43. package/dist/parsers/OrderByClauseParser.js.map +1 -1
  44. package/dist/parsers/OverExpressionParser.d.ts +2 -2
  45. package/dist/parsers/OverExpressionParser.js +4 -4
  46. package/dist/parsers/OverExpressionParser.js.map +1 -1
  47. package/dist/parsers/ParameterExpressionParser.d.ts +1 -1
  48. package/dist/parsers/ParameterExpressionParser.js +1 -1
  49. package/dist/parsers/ParameterExpressionParser.js.map +1 -1
  50. package/dist/parsers/ParenExpressionParser.d.ts +1 -1
  51. package/dist/parsers/ParenExpressionParser.js +2 -2
  52. package/dist/parsers/ParenExpressionParser.js.map +1 -1
  53. package/dist/parsers/PartitionByParser.d.ts +2 -2
  54. package/dist/parsers/PartitionByParser.js +7 -5
  55. package/dist/parsers/PartitionByParser.js.map +1 -1
  56. package/dist/parsers/SelectClauseParser.d.ts +2 -2
  57. package/dist/parsers/SelectClauseParser.js +6 -4
  58. package/dist/parsers/SelectClauseParser.js.map +1 -1
  59. package/dist/parsers/SelectQueryParser.d.ts +2 -2
  60. package/dist/parsers/SelectQueryParser.js +16 -14
  61. package/dist/parsers/SelectQueryParser.js.map +1 -1
  62. package/dist/parsers/SourceAliasExpressionParser.d.ts +1 -1
  63. package/dist/parsers/SourceAliasExpressionParser.js +2 -1
  64. package/dist/parsers/SourceAliasExpressionParser.js.map +1 -1
  65. package/dist/parsers/SourceExpressionParser.d.ts +1 -1
  66. package/dist/parsers/SourceExpressionParser.js +5 -4
  67. package/dist/parsers/SourceExpressionParser.js.map +1 -1
  68. package/dist/parsers/SourceParser.d.ts +2 -2
  69. package/dist/parsers/SourceParser.js +9 -6
  70. package/dist/parsers/SourceParser.js.map +1 -1
  71. package/dist/parsers/StringSpecifierExpressionParser.d.ts +1 -1
  72. package/dist/parsers/StringSpecifierExpressionParser.js +1 -1
  73. package/dist/parsers/StringSpecifierExpressionParser.js.map +1 -1
  74. package/dist/parsers/UnaryExpressionParser.d.ts +1 -1
  75. package/dist/parsers/UnaryExpressionParser.js +2 -2
  76. package/dist/parsers/UnaryExpressionParser.js.map +1 -1
  77. package/dist/parsers/ValueParser.d.ts +2 -2
  78. package/dist/parsers/ValueParser.js +15 -13
  79. package/dist/parsers/ValueParser.js.map +1 -1
  80. package/dist/parsers/ValuesQueryParser.d.ts +2 -2
  81. package/dist/parsers/ValuesQueryParser.js +5 -5
  82. package/dist/parsers/ValuesQueryParser.js.map +1 -1
  83. package/dist/parsers/WhereClauseParser.d.ts +2 -2
  84. package/dist/parsers/WhereClauseParser.js +6 -4
  85. package/dist/parsers/WhereClauseParser.js.map +1 -1
  86. package/dist/parsers/WindowClauseParser.d.ts +2 -2
  87. package/dist/parsers/WindowClauseParser.js +6 -4
  88. package/dist/parsers/WindowClauseParser.js.map +1 -1
  89. package/dist/parsers/WindowExpressionParser.d.ts +2 -2
  90. package/dist/parsers/WindowExpressionParser.js +29 -17
  91. package/dist/parsers/WindowExpressionParser.js.map +1 -1
  92. package/dist/parsers/WithClauseParser.d.ts +2 -2
  93. package/dist/parsers/WithClauseParser.js +7 -5
  94. package/dist/parsers/WithClauseParser.js.map +1 -1
  95. package/dist/transformers/CTEBuilder.js +1 -1
  96. package/dist/transformers/CTEBuilder.js.map +1 -1
  97. package/dist/transformers/CTENormalizer.d.ts +5 -5
  98. package/dist/transformers/CTENormalizer.js +11 -7
  99. package/dist/transformers/CTENormalizer.js.map +1 -1
  100. package/dist/transformers/Formatter.d.ts +16 -1
  101. package/dist/transformers/Formatter.js +16 -1
  102. package/dist/transformers/Formatter.js.map +1 -1
  103. package/dist/transformers/QueryConverter.d.ts +41 -0
  104. package/dist/transformers/{QueryNormalizer.js → QueryConverter.js} +39 -34
  105. package/dist/transformers/QueryConverter.js.map +1 -0
  106. package/package.json +3 -4
  107. package/dist/transformers/QueryNormalizer.d.ts +0 -37
  108. package/dist/transformers/QueryNormalizer.js.map +0 -1
  109. package/src/index.d.ts +0 -378
@@ -7,30 +7,32 @@ const ValueComponent_1 = require("../models/ValueComponent");
7
7
  const SqlTokenizer_1 = require("./SqlTokenizer");
8
8
  const ValueParser_1 = require("./ValueParser");
9
9
  class PartitionByParser {
10
- static parseFromText(query) {
10
+ // Parse SQL string to AST (was: parse)
11
+ static parse(query) {
11
12
  const tokenizer = new SqlTokenizer_1.SqlTokenizer(query); // Initialize tokenizer
12
13
  const lexemes = tokenizer.readLexmes(); // Get tokens
13
14
  // Parse
14
- const result = this.parse(lexemes, 0);
15
+ const result = this.parseFromLexeme(lexemes, 0);
15
16
  // Error if there are remaining tokens
16
17
  if (result.newIndex < lexemes.length) {
17
18
  throw new Error(`Syntax error: Unexpected token "${lexemes[result.newIndex].value}" at position ${result.newIndex}. The PARTITION BY clause is complete but there are additional tokens.`);
18
19
  }
19
20
  return result.value;
20
21
  }
21
- static parse(lexemes, index) {
22
+ // Parse from lexeme array (was: parse)
23
+ static parseFromLexeme(lexemes, index) {
22
24
  let idx = index;
23
25
  if (lexemes[idx].value !== 'partition by') {
24
26
  throw new Error(`Syntax error at position ${idx}: Expected 'PARTITION BY' keyword but found "${lexemes[idx].value}". PARTITION BY clauses must start with the PARTITION BY keywords.`);
25
27
  }
26
28
  idx++;
27
29
  const items = [];
28
- const item = ValueParser_1.ValueParser.parse(lexemes, idx);
30
+ const item = ValueParser_1.ValueParser.parseFromLexeme(lexemes, idx);
29
31
  items.push(item.value);
30
32
  idx = item.newIndex;
31
33
  while (idx < lexemes.length && lexemes[idx].type === Lexeme_1.TokenType.Comma) {
32
34
  idx++;
33
- const item = ValueParser_1.ValueParser.parse(lexemes, idx);
35
+ const item = ValueParser_1.ValueParser.parseFromLexeme(lexemes, idx);
34
36
  items.push(item.value);
35
37
  idx = item.newIndex;
36
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PartitionByParser.js","sourceRoot":"","sources":["../../src/parsers/PartitionByParser.ts"],"names":[],"mappings":";;;AAAA,6CAAqD;AACrD,6CAAqD;AACrD,6DAAqE;AACrE,iDAA8C;AAC9C,+CAA4C;AAE5C,MAAa,iBAAiB;IACnB,MAAM,CAAC,aAAa,CAAC,KAAa;QACrC,MAAM,SAAS,GAAG,IAAI,2BAAY,CAAC,KAAK,CAAC,CAAC,CAAC,uBAAuB;QAClE,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,aAAa;QAErD,QAAQ;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAEtC,sCAAsC;QACtC,IAAI,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,mCAAmC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,iBAAiB,MAAM,CAAC,QAAQ,wEAAwE,CAAC,CAAC;QAC/L,CAAC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC;IACxB,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,OAAiB,EAAE,KAAa;QAChD,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,cAAc,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,gDAAgD,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,oEAAoE,CAAC,CAAC;QAC3L,CAAC;QACD,GAAG,EAAE,CAAC;QAEN,MAAM,KAAK,GAAqB,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,yBAAW,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;QAEpB,OAAO,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,KAAK,EAAE,CAAC;YACnE,GAAG,EAAE,CAAC;YACN,MAAM,IAAI,GAAG,yBAAW,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;QACxB,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,6GAA6G,CAAC,CAAC;QACpK,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,0BAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QAC5C,CAAC;aAAM,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,0BAAiB,CAAC,IAAI,0BAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QAC5C,CAAC;IACL,CAAC;CACJ;AA9CD,8CA8CC"}
1
+ {"version":3,"file":"PartitionByParser.js","sourceRoot":"","sources":["../../src/parsers/PartitionByParser.ts"],"names":[],"mappings":";;;AAAA,6CAAqD;AACrD,6CAAqD;AACrD,6DAAqE;AACrE,iDAA8C;AAC9C,+CAA4C;AAE5C,MAAa,iBAAiB;IAC1B,uCAAuC;IAChC,MAAM,CAAC,KAAK,CAAC,KAAa;QAC7B,MAAM,SAAS,GAAG,IAAI,2BAAY,CAAC,KAAK,CAAC,CAAC,CAAC,uBAAuB;QAClE,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,aAAa;QAErD,QAAQ;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAEhD,sCAAsC;QACtC,IAAI,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,mCAAmC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,iBAAiB,MAAM,CAAC,QAAQ,wEAAwE,CAAC,CAAC;QAC/L,CAAC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC;IACxB,CAAC;IAED,uCAAuC;IAChC,MAAM,CAAC,eAAe,CAAC,OAAiB,EAAE,KAAa;QAC1D,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,cAAc,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,gDAAgD,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,oEAAoE,CAAC,CAAC;QAC3L,CAAC;QACD,GAAG,EAAE,CAAC;QACN,MAAM,KAAK,GAAqB,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,yBAAW,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACvD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;QACpB,OAAO,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,KAAK,EAAE,CAAC;YACnE,GAAG,EAAE,CAAC;YACN,MAAM,IAAI,GAAG,yBAAW,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACvD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;QACxB,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,6GAA6G,CAAC,CAAC;QACpK,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,0BAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QAC5C,CAAC;aAAM,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,0BAAiB,CAAC,IAAI,0BAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QAC5C,CAAC;IACL,CAAC;CACJ;AA5CD,8CA4CC"}
@@ -1,8 +1,8 @@
1
1
  import { SelectClause } from "../models/Clause";
2
2
  import { Lexeme } from "../models/Lexeme";
3
3
  export declare class SelectClauseParser {
4
- static parseFromText(query: string): SelectClause;
5
- static parse(lexemes: Lexeme[], index: number): {
4
+ static parse(query: string): SelectClause;
5
+ static parseFromLexeme(lexemes: Lexeme[], index: number): {
6
6
  value: SelectClause;
7
7
  newIndex: number;
8
8
  };
@@ -6,18 +6,20 @@ const Lexeme_1 = require("../models/Lexeme");
6
6
  const SqlTokenizer_1 = require("./SqlTokenizer");
7
7
  const ValueParser_1 = require("./ValueParser");
8
8
  class SelectClauseParser {
9
- static parseFromText(query) {
9
+ // Parse SQL string to AST (was: parse)
10
+ static parse(query) {
10
11
  const tokenizer = new SqlTokenizer_1.SqlTokenizer(query); // Initialize tokenizer
11
12
  const lexemes = tokenizer.readLexmes(); // Get tokens
12
13
  // Parse
13
- const result = this.parse(lexemes, 0);
14
+ const result = this.parseFromLexeme(lexemes, 0);
14
15
  // Error if there are remaining tokens
15
16
  if (result.newIndex < lexemes.length) {
16
17
  throw new Error(`Syntax error: Unexpected token "${lexemes[result.newIndex].value}" at position ${result.newIndex}. The SELECT clause is complete but there are additional tokens.`);
17
18
  }
18
19
  return result.value;
19
20
  }
20
- static parse(lexemes, index) {
21
+ // Parse from lexeme array (was: parse)
22
+ static parseFromLexeme(lexemes, index) {
21
23
  let idx = index;
22
24
  let distinct = null;
23
25
  if (lexemes[idx].value !== 'select') {
@@ -54,7 +56,7 @@ class SelectClauseParser {
54
56
  }
55
57
  static parseItem(lexemes, index) {
56
58
  let idx = index;
57
- const parsedValue = ValueParser_1.ValueParser.parse(lexemes, idx);
59
+ const parsedValue = ValueParser_1.ValueParser.parseFromLexeme(lexemes, idx);
58
60
  const value = parsedValue.value;
59
61
  idx = parsedValue.newIndex;
60
62
  if (idx < lexemes.length && lexemes[idx].value === 'as') {
@@ -1 +1 @@
1
- {"version":3,"file":"SelectClauseParser.js","sourceRoot":"","sources":["../../src/parsers/SelectClauseParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectClauseParser.js","sourceRoot":"","sources":["../../src/parsers/SelectClauseParser.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { Lexeme } from "../models/Lexeme";
2
2
  import { SelectQuery } from "../models/SelectQuery";
3
3
  export declare class SelectQueryParser {
4
- static parseFromText(query: string): SelectQuery;
4
+ static parse(query: string): SelectQuery;
5
5
  private static unionCommandSet;
6
6
  private static selectCommandSet;
7
- static parse(lexemes: Lexeme[], index: number): {
7
+ static parseFromLexeme(lexemes: Lexeme[], index: number): {
8
8
  value: SelectQuery;
9
9
  newIndex: number;
10
10
  };
@@ -15,18 +15,20 @@ const SqlTokenizer_1 = require("./SqlTokenizer");
15
15
  const WithClauseParser_1 = require("./WithClauseParser");
16
16
  const ValuesQueryParser_1 = require("./ValuesQueryParser");
17
17
  class SelectQueryParser {
18
- static parseFromText(query) {
18
+ // Parse SQL string to AST (was: parse)
19
+ static parse(query) {
19
20
  const tokenizer = new SqlTokenizer_1.SqlTokenizer(query);
20
21
  const lexemes = tokenizer.readLexmes();
21
22
  // Parse
22
- const result = this.parse(lexemes, 0);
23
+ const result = this.parseFromLexeme(lexemes, 0);
23
24
  // Error if there are remaining tokens
24
25
  if (result.newIndex < lexemes.length) {
25
26
  throw new Error(`Syntax error: Unexpected token "${lexemes[result.newIndex].value}" at position ${result.newIndex}. The SELECT query is complete but there are additional tokens.`);
26
27
  }
27
28
  return result.value;
28
29
  }
29
- static parse(lexemes, index) {
30
+ // Parse from lexeme array (was: parse)
31
+ static parseFromLexeme(lexemes, index) {
30
32
  let idx = index;
31
33
  if (idx >= lexemes.length) {
32
34
  throw new Error(`Syntax error: Unexpected end of input at position ${index}.`);
@@ -70,61 +72,61 @@ class SelectQueryParser {
70
72
  let withClauseResult = null;
71
73
  // Parse optional WITH clause
72
74
  if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'with') {
73
- withClauseResult = WithClauseParser_1.WithClauseParser.parse(lexemes, idx);
75
+ withClauseResult = WithClauseParser_1.WithClauseParser.parseFromLexeme(lexemes, idx);
74
76
  idx = withClauseResult.newIndex;
75
77
  }
76
78
  // Parse SELECT clause (required)
77
79
  if (idx >= lexemes.length || lexemes[idx].value.toLowerCase() !== 'select') {
78
80
  throw new Error(`Syntax error at position ${idx}: Expected 'SELECT' keyword but found "${idx < lexemes.length ? lexemes[idx].value : 'end of input'}". SELECT queries must start with the SELECT keyword.`);
79
81
  }
80
- const selectClauseResult = SelectClauseParser_1.SelectClauseParser.parse(lexemes, idx);
82
+ const selectClauseResult = SelectClauseParser_1.SelectClauseParser.parseFromLexeme(lexemes, idx);
81
83
  idx = selectClauseResult.newIndex;
82
84
  // Parse FROM clause (optional)
83
85
  let fromClauseResult = null;
84
86
  if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'from') {
85
- fromClauseResult = FromClauseParser_1.FromClauseParser.parse(lexemes, idx);
87
+ fromClauseResult = FromClauseParser_1.FromClauseParser.parseFromLexeme(lexemes, idx);
86
88
  idx = fromClauseResult.newIndex;
87
89
  }
88
90
  // Parse WHERE clause (optional)
89
91
  let whereClauseResult = null;
90
92
  if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'where') {
91
- whereClauseResult = WhereClauseParser_1.WhereClauseParser.parse(lexemes, idx);
93
+ whereClauseResult = WhereClauseParser_1.WhereClauseParser.parseFromLexeme(lexemes, idx);
92
94
  idx = whereClauseResult.newIndex;
93
95
  }
94
96
  // Parse GROUP BY clause (optional)
95
97
  let groupByClauseResult = null;
96
98
  if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'group by') {
97
- groupByClauseResult = GroupByParser_1.GroupByClauseParser.parse(lexemes, idx);
99
+ groupByClauseResult = GroupByParser_1.GroupByClauseParser.parseFromLexeme(lexemes, idx);
98
100
  idx = groupByClauseResult.newIndex;
99
101
  }
100
102
  // Parse HAVING clause (optional)
101
103
  let havingClauseResult = null;
102
104
  if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'having') {
103
- havingClauseResult = HavingParser_1.HavingClauseParser.parse(lexemes, idx);
105
+ havingClauseResult = HavingParser_1.HavingClauseParser.parseFromLexeme(lexemes, idx);
104
106
  idx = havingClauseResult.newIndex;
105
107
  }
106
108
  // Parse WINDOW clause (optional)
107
109
  let windowFrameClauseResult = null;
108
110
  if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'window') {
109
- windowFrameClauseResult = WindowClauseParser_1.WindowClauseParser.parse(lexemes, idx);
111
+ windowFrameClauseResult = WindowClauseParser_1.WindowClauseParser.parseFromLexeme(lexemes, idx);
110
112
  idx = windowFrameClauseResult.newIndex;
111
113
  }
112
114
  // Parse ORDER BY clause (optional)
113
115
  let orderByClauseResult = null;
114
116
  if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'order by') {
115
- orderByClauseResult = OrderByClauseParser_1.OrderByClauseParser.parse(lexemes, idx);
117
+ orderByClauseResult = OrderByClauseParser_1.OrderByClauseParser.parseFromLexeme(lexemes, idx);
116
118
  idx = orderByClauseResult.newIndex;
117
119
  }
118
120
  // Parse LIMIT clause (optional)
119
121
  let limitClauseResult = null;
120
122
  if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'limit') {
121
- limitClauseResult = LimitClauseParser_1.LimitClauseParser.parse(lexemes, idx);
123
+ limitClauseResult = LimitClauseParser_1.LimitClauseParser.parseFromLexeme(lexemes, idx);
122
124
  idx = limitClauseResult.newIndex;
123
125
  }
124
126
  // Parse FOR clause (optional)
125
127
  let forClauseResult = null;
126
128
  if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'for') {
127
- forClauseResult = ForClauseParser_1.ForClauseParser.parse(lexemes, idx);
129
+ forClauseResult = ForClauseParser_1.ForClauseParser.parseFromLexeme(lexemes, idx);
128
130
  idx = forClauseResult.newIndex;
129
131
  }
130
132
  // Create and return the SelectQuery object
@@ -133,7 +135,7 @@ class SelectQueryParser {
133
135
  }
134
136
  static parseValuesQuery(lexemes, index) {
135
137
  // Use ValuesQueryParser to parse VALUES clause
136
- const result = ValuesQueryParser_1.ValuesQueryParser.parse(lexemes, index);
138
+ const result = ValuesQueryParser_1.ValuesQueryParser.parseFromLexeme(lexemes, index);
137
139
  // Return the result from ValuesQueryParser directly
138
140
  return { value: result.value, newIndex: result.newIndex };
139
141
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SelectQueryParser.js","sourceRoot":"","sources":["../../src/parsers/SelectQueryParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectQueryParser.js","sourceRoot":"","sources":["../../src/parsers/SelectQueryParser.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { SourceAliasExpression } from "../models/Clause";
2
2
  import { Lexeme } from "../models/Lexeme";
3
3
  export declare class SourceAliasExpressionParser {
4
- static parse(lexemes: Lexeme[], index: number): {
4
+ static parseFromLexeme(lexemes: Lexeme[], index: number): {
5
5
  value: SourceAliasExpression;
6
6
  newIndex: number;
7
7
  };
@@ -4,7 +4,8 @@ exports.SourceAliasExpressionParser = void 0;
4
4
  const Clause_1 = require("../models/Clause");
5
5
  const Lexeme_1 = require("../models/Lexeme");
6
6
  class SourceAliasExpressionParser {
7
- static parse(lexemes, index) {
7
+ // Parse from lexeme array (was: parse)
8
+ static parseFromLexeme(lexemes, index) {
8
9
  var _a;
9
10
  let idx = index;
10
11
  // If there is a column alias, it may be detected as a function, so functions are also processed.
@@ -1 +1 @@
1
- {"version":3,"file":"SourceAliasExpressionParser.js","sourceRoot":"","sources":["../../src/parsers/SourceAliasExpressionParser.ts"],"names":[],"mappings":";;;AAAA,6CAAyD;AACzD,6CAAqD;AAGrD,MAAa,2BAA2B;IAE7B,MAAM,CAAC,KAAK,CAAC,OAAiB,EAAE,KAAa;;QAChD,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,iGAAiG;QACjG,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnH,kBAAkB;YAClB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YACjC,GAAG,EAAE,CAAC;YAEN,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,SAAS,EAAE,CAAC;gBACpE,yBAAyB;gBACzB,MAAM,OAAO,GAAa,EAAE,CAAC;gBAE7B,4BAA4B;gBAC5B,GAAG,EAAE,CAAC;gBAEN,OAAO,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,UAAU,EAAE,CAAC;oBACxE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;oBACjC,GAAG,EAAE,CAAC;oBACN,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,KAAK,EAAE,CAAC;wBAChE,GAAG,EAAE,CAAC;oBACV,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,2BAA2B;oBACtC,CAAC;gBACL,CAAC;gBAED,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,UAAU,EAAE,CAAC;oBAC7C,+BAA+B;oBAC/B,GAAG,EAAE,CAAC;gBACV,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,6HAA6H,CAAC,CAAC;gBAClL,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,6FAA6F,CAAC,CAAC;gBACpJ,CAAC;gBAED,OAAO,EAAE,KAAK,EAAE,IAAI,8BAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;YAC/E,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,IAAI,8BAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QAC5E,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,uDAAuD,CAAA,MAAA,OAAO,CAAC,KAAK,CAAC,0CAAE,KAAK,KAAI,cAAc,IAAI,CAAC,CAAC;IACzJ,CAAC;CACJ;AA9CD,kEA8CC"}
1
+ {"version":3,"file":"SourceAliasExpressionParser.js","sourceRoot":"","sources":["../../src/parsers/SourceAliasExpressionParser.ts"],"names":[],"mappings":";;;AAAA,6CAAyD;AACzD,6CAAqD;AAGrD,MAAa,2BAA2B;IACpC,uCAAuC;IAChC,MAAM,CAAC,eAAe,CAAC,OAAiB,EAAE,KAAa;;QAC1D,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,iGAAiG;QACjG,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnH,kBAAkB;YAClB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YACjC,GAAG,EAAE,CAAC;YAEN,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,SAAS,EAAE,CAAC;gBACpE,yBAAyB;gBACzB,MAAM,OAAO,GAAa,EAAE,CAAC;gBAE7B,4BAA4B;gBAC5B,GAAG,EAAE,CAAC;gBAEN,OAAO,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,UAAU,EAAE,CAAC;oBACxE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;oBACjC,GAAG,EAAE,CAAC;oBACN,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,KAAK,EAAE,CAAC;wBAChE,GAAG,EAAE,CAAC;oBACV,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,2BAA2B;oBACtC,CAAC;gBACL,CAAC;gBAED,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,UAAU,EAAE,CAAC;oBAC7C,+BAA+B;oBAC/B,GAAG,EAAE,CAAC;gBACV,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,6HAA6H,CAAC,CAAC;gBAClL,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,6FAA6F,CAAC,CAAC;gBACpJ,CAAC;gBAED,OAAO,EAAE,KAAK,EAAE,IAAI,8BAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;YAC/E,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,IAAI,8BAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QAC5E,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,uDAAuD,CAAA,MAAA,OAAO,CAAC,KAAK,CAAC,0CAAE,KAAK,KAAI,cAAc,IAAI,CAAC,CAAC;IACzJ,CAAC;CACJ;AA9CD,kEA8CC"}
@@ -1,7 +1,7 @@
1
1
  import { SourceExpression } from "../models/Clause";
2
2
  import { Lexeme } from "../models/Lexeme";
3
3
  export declare class SourceExpressionParser {
4
- static parse(lexemes: Lexeme[], index: number): {
4
+ static parseFromLexeme(lexemes: Lexeme[], index: number): {
5
5
  value: SourceExpression;
6
6
  newIndex: number;
7
7
  };
@@ -6,20 +6,21 @@ const Lexeme_1 = require("../models/Lexeme");
6
6
  const SourceParser_1 = require("./SourceParser");
7
7
  const SourceAliasExpressionParser_1 = require("./SourceAliasExpressionParser");
8
8
  class SourceExpressionParser {
9
- static parse(lexemes, index) {
9
+ // Parse from lexeme array (was: parse)
10
+ static parseFromLexeme(lexemes, index) {
10
11
  let idx = index;
11
- const sourceResult = SourceParser_1.SourceParser.parse(lexemes, idx);
12
+ const sourceResult = SourceParser_1.SourceParser.parseFromLexeme(lexemes, idx);
12
13
  idx = sourceResult.newIndex;
13
14
  if (idx < lexemes.length) {
14
15
  if (lexemes[idx].value === "as") {
15
16
  idx++;
16
- const aliasResult = SourceAliasExpressionParser_1.SourceAliasExpressionParser.parse(lexemes, idx);
17
+ const aliasResult = SourceAliasExpressionParser_1.SourceAliasExpressionParser.parseFromLexeme(lexemes, idx);
17
18
  idx = aliasResult.newIndex;
18
19
  const sourceExpr = new Clause_1.SourceExpression(sourceResult.value, aliasResult.value);
19
20
  return { value: sourceExpr, newIndex: idx };
20
21
  }
21
22
  if (lexemes[idx].type === Lexeme_1.TokenType.Identifier) {
22
- const aliasResult = SourceAliasExpressionParser_1.SourceAliasExpressionParser.parse(lexemes, idx);
23
+ const aliasResult = SourceAliasExpressionParser_1.SourceAliasExpressionParser.parseFromLexeme(lexemes, idx);
23
24
  idx = aliasResult.newIndex;
24
25
  const sourceExpr = new Clause_1.SourceExpression(sourceResult.value, aliasResult.value);
25
26
  return { value: sourceExpr, newIndex: idx };
@@ -1 +1 @@
1
- {"version":3,"file":"SourceExpressionParser.js","sourceRoot":"","sources":["../../src/parsers/SourceExpressionParser.ts"],"names":[],"mappings":";;;AAAA,6CAAwF;AACxF,6CAAqD;AACrD,iDAA8C;AAC9C,+EAA4E;AAE5E,MAAa,sBAAsB;IACxB,MAAM,CAAC,KAAK,CAAC,OAAiB,EAAE,KAAa;QAChD,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,MAAM,YAAY,GAAG,2BAAY,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACtD,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC;QAE5B,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC9B,GAAG,EAAE,CAAC;gBACN,MAAM,WAAW,GAAG,yDAA2B,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACpE,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC;gBAC3B,MAAM,UAAU,GAAG,IAAI,yBAAgB,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC/E,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;YAChD,CAAC;YAED,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,UAAU,EAAE,CAAC;gBAC7C,MAAM,WAAW,GAAG,yDAA2B,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACpE,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC;gBAC3B,MAAM,UAAU,GAAG,IAAI,yBAAgB,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC/E,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;YAChD,CAAC;QACL,CAAC;QAED,WAAW;QACX,MAAM,IAAI,GAAG,IAAI,yBAAgB,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAC1C,CAAC;CACJ;AA5BD,wDA4BC"}
1
+ {"version":3,"file":"SourceExpressionParser.js","sourceRoot":"","sources":["../../src/parsers/SourceExpressionParser.ts"],"names":[],"mappings":";;;AAAA,6CAAwF;AACxF,6CAAqD;AACrD,iDAA8C;AAC9C,+EAA4E;AAE5E,MAAa,sBAAsB;IAC/B,uCAAuC;IAChC,MAAM,CAAC,eAAe,CAAC,OAAiB,EAAE,KAAa;QAC1D,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,MAAM,YAAY,GAAG,2BAAY,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAChE,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC;QAE5B,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC9B,GAAG,EAAE,CAAC;gBACN,MAAM,WAAW,GAAG,yDAA2B,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC9E,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC;gBAC3B,MAAM,UAAU,GAAG,IAAI,yBAAgB,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC/E,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;YAChD,CAAC;YAED,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,UAAU,EAAE,CAAC;gBAC7C,MAAM,WAAW,GAAG,yDAA2B,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC9E,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC;gBAC3B,MAAM,UAAU,GAAG,IAAI,yBAAgB,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC/E,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;YAChD,CAAC;QACL,CAAC;QAED,WAAW;QACX,MAAM,IAAI,GAAG,IAAI,yBAAgB,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAC1C,CAAC;CACJ;AA7BD,wDA6BC"}
@@ -1,8 +1,8 @@
1
1
  import { SourceComponent } from "../models/Clause";
2
2
  import { Lexeme } from "../models/Lexeme";
3
3
  export declare class SourceParser {
4
- static parseFromText(query: string): SourceComponent;
5
- static parse(lexemes: Lexeme[], index: number): {
4
+ static parse(query: string): SourceComponent;
5
+ static parseFromLexeme(lexemes: Lexeme[], index: number): {
6
6
  value: SourceComponent;
7
7
  newIndex: number;
8
8
  };
@@ -7,18 +7,20 @@ const SelectQueryParser_1 = require("./SelectQueryParser");
7
7
  const SqlTokenizer_1 = require("./SqlTokenizer");
8
8
  const ValueParser_1 = require("./ValueParser");
9
9
  class SourceParser {
10
- static parseFromText(query) {
10
+ // Parse SQL string to AST (was: parse)
11
+ static parse(query) {
11
12
  const tokenizer = new SqlTokenizer_1.SqlTokenizer(query); // Initialize tokenizer
12
13
  const lexemes = tokenizer.readLexmes(); // Get tokens
13
14
  // Parse
14
- const result = this.parse(lexemes, 0);
15
+ const result = this.parseFromLexeme(lexemes, 0);
15
16
  // Error if there are remaining tokens
16
17
  if (result.newIndex < lexemes.length) {
17
18
  throw new Error(`Syntax error: Unexpected token "${lexemes[result.newIndex].value}" at position ${result.newIndex}. The source component is complete but there are additional tokens.`);
18
19
  }
19
20
  return result.value;
20
21
  }
21
- static parse(lexemes, index) {
22
+ // Parse from lexeme array (was: parse)
23
+ static parseFromLexeme(lexemes, index) {
22
24
  const idx = index;
23
25
  // Handle subquery
24
26
  if (idx < lexemes.length && lexemes[idx].type === Lexeme_1.TokenType.OpenParen) {
@@ -106,9 +108,10 @@ class SourceParser {
106
108
  }
107
109
  static parseSubQuerySource(lexemes, index) {
108
110
  let idx = index;
109
- const selectQuery = SelectQueryParser_1.SelectQueryParser.parse(lexemes, idx);
110
- idx = selectQuery.newIndex;
111
- const subQuerySource = new Clause_1.SubQuerySource(selectQuery.value);
111
+ // Use the new parseFromLexeme method and destructure the result
112
+ const { value: selectQuery, newIndex } = SelectQueryParser_1.SelectQueryParser.parseFromLexeme(lexemes, idx);
113
+ idx = newIndex;
114
+ const subQuerySource = new Clause_1.SubQuerySource(selectQuery);
112
115
  return { value: subQuerySource, newIndex: idx };
113
116
  }
114
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SourceParser.js","sourceRoot":"","sources":["../../src/parsers/SourceParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SourceParser.js","sourceRoot":"","sources":["../../src/parsers/SourceParser.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Lexeme } from "../models/Lexeme";
2
2
  import { ValueComponent } from "../models/ValueComponent";
3
3
  export declare class StringSpecifierExpressionParser {
4
- static parse(lexemes: Lexeme[], index: number): {
4
+ static parseFromLexeme(lexemes: Lexeme[], index: number): {
5
5
  value: ValueComponent;
6
6
  newIndex: number;
7
7
  };
@@ -4,7 +4,7 @@ exports.StringSpecifierExpressionParser = void 0;
4
4
  const Lexeme_1 = require("../models/Lexeme");
5
5
  const ValueComponent_1 = require("../models/ValueComponent");
6
6
  class StringSpecifierExpressionParser {
7
- static parse(lexemes, index) {
7
+ static parseFromLexeme(lexemes, index) {
8
8
  let idx = index;
9
9
  const specifer = lexemes[idx].value;
10
10
  idx++;
@@ -1 +1 @@
1
- {"version":3,"file":"StringSpecifierExpressionParser.js","sourceRoot":"","sources":["../../src/parsers/StringSpecifierExpressionParser.ts"],"names":[],"mappings":";;;AAAA,6CAAqD;AACrD,6DAAqF;AAErF,MAAa,+BAA+B;IACjC,MAAM,CAAC,KAAK,CAAC,OAAiB,EAAE,KAAa;QAChD,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QACpC,GAAG,EAAE,CAAC;QACN,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,OAAO,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,2DAA2D,GAAG,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QACjC,GAAG,EAAE,CAAC;QACN,mCAAmC;QACnC,MAAM,MAAM,GAAG,IAAI,0CAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE9D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAC5C,CAAC;CACJ;AAfD,0EAeC"}
1
+ {"version":3,"file":"StringSpecifierExpressionParser.js","sourceRoot":"","sources":["../../src/parsers/StringSpecifierExpressionParser.ts"],"names":[],"mappings":";;;AAAA,6CAAqD;AACrD,6DAAqF;AAErF,MAAa,+BAA+B;IACjC,MAAM,CAAC,eAAe,CAAC,OAAiB,EAAE,KAAa;QAC1D,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QACpC,GAAG,EAAE,CAAC;QACN,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,OAAO,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,2DAA2D,GAAG,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QACjC,GAAG,EAAE,CAAC;QACN,mCAAmC;QACnC,MAAM,MAAM,GAAG,IAAI,0CAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE9D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAC5C,CAAC;CACJ;AAfD,0EAeC"}
@@ -1,7 +1,7 @@
1
1
  import { Lexeme } from "../models/Lexeme";
2
2
  import { ValueComponent } from "../models/ValueComponent";
3
3
  export declare class UnaryExpressionParser {
4
- static parse(lexemes: Lexeme[], index: number): {
4
+ static parseFromLexeme(lexemes: Lexeme[], index: number): {
5
5
  value: ValueComponent;
6
6
  newIndex: number;
7
7
  };
@@ -5,7 +5,7 @@ const Lexeme_1 = require("../models/Lexeme");
5
5
  const ValueComponent_1 = require("../models/ValueComponent");
6
6
  const ValueParser_1 = require("./ValueParser");
7
7
  class UnaryExpressionParser {
8
- static parse(lexemes, index) {
8
+ static parseFromLexeme(lexemes, index) {
9
9
  let idx = index;
10
10
  // Process unary operator
11
11
  if (idx < lexemes.length && lexemes[idx].type === Lexeme_1.TokenType.Operator) {
@@ -17,7 +17,7 @@ class UnaryExpressionParser {
17
17
  return { value: v, newIndex: idx };
18
18
  }
19
19
  // Get the right-hand side value of the unary operator
20
- const result = ValueParser_1.ValueParser.parse(lexemes, idx);
20
+ const result = ValueParser_1.ValueParser.parseFromLexeme(lexemes, idx);
21
21
  idx = result.newIndex;
22
22
  // Create unary expression
23
23
  const value = new ValueComponent_1.UnaryExpression(operator, result.value);
@@ -1 +1 @@
1
- {"version":3,"file":"UnaryExpressionParser.js","sourceRoot":"","sources":["../../src/parsers/UnaryExpressionParser.ts"],"names":[],"mappings":";;;AAAA,6CAAqD;AACrD,6DAA8G;AAC9G,+CAA4C;AAE5C,MAAa,qBAAqB;IACvB,MAAM,CAAC,KAAK,CAAC,OAAiB,EAAE,KAAa;QAChD,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,yBAAyB;QACzB,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,QAAQ,EAAE,CAAC;YACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YACpC,GAAG,EAAE,CAAC;YAEN,+DAA+D;YAC/D,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;gBACnB,MAAM,CAAC,GAAG,IAAI,gCAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACzC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;YACvC,CAAC;YAED,sDAAsD;YACtD,MAAM,MAAM,GAAG,yBAAW,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC/C,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;YAEtB,0BAA0B;YAC1B,MAAM,KAAK,GAAG,IAAI,gCAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QACpC,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3F,CAAC;CACJ;AA1BD,sDA0BC"}
1
+ {"version":3,"file":"UnaryExpressionParser.js","sourceRoot":"","sources":["../../src/parsers/UnaryExpressionParser.ts"],"names":[],"mappings":";;;AAAA,6CAAqD;AACrD,6DAA8G;AAC9G,+CAA4C;AAE5C,MAAa,qBAAqB;IACvB,MAAM,CAAC,eAAe,CAAC,OAAiB,EAAE,KAAa;QAC1D,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,yBAAyB;QACzB,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAS,CAAC,QAAQ,EAAE,CAAC;YACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YACpC,GAAG,EAAE,CAAC;YAEN,+DAA+D;YAC/D,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;gBACnB,MAAM,CAAC,GAAG,IAAI,gCAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACzC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;YACvC,CAAC;YAED,sDAAsD;YACtD,MAAM,MAAM,GAAG,yBAAW,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACzD,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;YAEtB,0BAA0B;YAC1B,MAAM,KAAK,GAAG,IAAI,gCAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QACpC,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3F,CAAC;CACJ;AA1BD,sDA0BC"}
@@ -1,8 +1,8 @@
1
1
  import { Lexeme, TokenType } from "../models/Lexeme";
2
2
  import { ValueComponent } from "../models/ValueComponent";
3
3
  export declare class ValueParser {
4
- static parseFromText(query: string): ValueComponent;
5
- static parse(lexemes: Lexeme[], index: number, allowAndOperator?: boolean): {
4
+ static parse(query: string): ValueComponent;
5
+ static parseFromLexeme(lexemes: Lexeme[], index: number, allowAndOperator?: boolean): {
6
6
  value: ValueComponent;
7
7
  newIndex: number;
8
8
  };
@@ -13,18 +13,20 @@ const StringSpecifierExpressionParser_1 = require("./StringSpecifierExpressionPa
13
13
  const CommandExpressionParser_1 = require("./CommandExpressionParser");
14
14
  const FunctionExpressionParser_1 = require("./FunctionExpressionParser");
15
15
  class ValueParser {
16
- static parseFromText(query) {
16
+ // Parse SQL string to AST (was: parse)
17
+ static parse(query) {
17
18
  const tokenizer = new SqlTokenizer_1.SqlTokenizer(query); // Initialize tokenizer
18
19
  const lexemes = tokenizer.readLexmes(); // Get tokens
19
20
  // Parse
20
- const result = this.parse(lexemes, 0);
21
+ const result = this.parseFromLexeme(lexemes, 0);
21
22
  // Error if there are remaining tokens
22
23
  if (result.newIndex < lexemes.length) {
23
24
  throw new Error(`Unexpected token at index ${result.newIndex}: ${lexemes[result.newIndex].value}`);
24
25
  }
25
26
  return result.value;
26
27
  }
27
- static parse(lexemes, index, allowAndOperator = true) {
28
+ // Parse from lexeme array (was: parse)
29
+ static parseFromLexeme(lexemes, index, allowAndOperator = true) {
28
30
  let idx = index;
29
31
  // support comments
30
32
  const comment = lexemes[index].comments;
@@ -52,28 +54,28 @@ class ValueParser {
52
54
  }
53
55
  const current = lexemes[idx];
54
56
  if (current.type === Lexeme_1.TokenType.Identifier) {
55
- return IdentifierParser_1.IdentifierParser.parse(lexemes, idx);
57
+ return IdentifierParser_1.IdentifierParser.parseFromLexeme(lexemes, idx);
56
58
  }
57
59
  else if (current.type === Lexeme_1.TokenType.Literal) {
58
- return LiteralParser_1.LiteralParser.parse(lexemes, idx);
60
+ return LiteralParser_1.LiteralParser.parseFromLexeme(lexemes, idx);
59
61
  }
60
62
  else if (current.type === Lexeme_1.TokenType.OpenParen) {
61
- return ParenExpressionParser_1.ParenExpressionParser.parse(lexemes, idx);
63
+ return ParenExpressionParser_1.ParenExpressionParser.parseFromLexeme(lexemes, idx);
62
64
  }
63
65
  else if (current.type === Lexeme_1.TokenType.Function) {
64
- return FunctionExpressionParser_1.FunctionExpressionParser.parse(lexemes, idx);
66
+ return FunctionExpressionParser_1.FunctionExpressionParser.parseFromLexeme(lexemes, idx);
65
67
  }
66
68
  else if (current.type === Lexeme_1.TokenType.Operator) {
67
- return UnaryExpressionParser_1.UnaryExpressionParser.parse(lexemes, idx);
69
+ return UnaryExpressionParser_1.UnaryExpressionParser.parseFromLexeme(lexemes, idx);
68
70
  }
69
71
  else if (current.type === Lexeme_1.TokenType.Parameter) {
70
- return ParameterExpressionParser_1.ParameterExpressionParser.parse(lexemes, idx);
72
+ return ParameterExpressionParser_1.ParameterExpressionParser.parseFromLexeme(lexemes, idx);
71
73
  }
72
74
  else if (current.type === Lexeme_1.TokenType.StringSpecifier) {
73
- return StringSpecifierExpressionParser_1.StringSpecifierExpressionParser.parse(lexemes, idx);
75
+ return StringSpecifierExpressionParser_1.StringSpecifierExpressionParser.parseFromLexeme(lexemes, idx);
74
76
  }
75
77
  else if (current.type === Lexeme_1.TokenType.Command) {
76
- return CommandExpressionParser_1.CommandExpressionParser.parse(lexemes, idx);
78
+ return CommandExpressionParser_1.CommandExpressionParser.parseFromLexeme(lexemes, idx);
77
79
  }
78
80
  throw new Error(`Invalid lexeme. index: ${idx}, type: ${lexemes[idx].type}, value: ${lexemes[idx].value}`);
79
81
  }
@@ -102,13 +104,13 @@ class ValueParser {
102
104
  }
103
105
  }
104
106
  // Parse the value inside
105
- const result = this.parse(lexemes, idx);
107
+ const result = this.parseFromLexeme(lexemes, idx);
106
108
  idx = result.newIndex;
107
109
  args.push(result.value);
108
110
  // Continue reading if the next element is a comma
109
111
  while (idx < lexemes.length && lexemes[idx].type === Lexeme_1.TokenType.Comma) {
110
112
  idx++;
111
- const argResult = this.parse(lexemes, idx);
113
+ const argResult = this.parseFromLexeme(lexemes, idx);
112
114
  idx = argResult.newIndex;
113
115
  args.push(argResult.value);
114
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ValueParser.js","sourceRoot":"","sources":["../../src/parsers/ValueParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ValueParser.js","sourceRoot":"","sources":["../../src/parsers/ValueParser.ts"],"names":[],"mappings":"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"}