dt-sql-parser 4.0.0-beta.4.4 → 4.0.0-beta.4.6

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 (40) hide show
  1. package/README.md +16 -16
  2. package/dist/lib/flinksql/FlinkSqlLexer.d.ts +542 -408
  3. package/dist/lib/flinksql/FlinkSqlLexer.js +3474 -2368
  4. package/dist/lib/flinksql/FlinkSqlLexer.js.map +1 -1
  5. package/dist/lib/flinksql/FlinkSqlParser.d.ts +634 -776
  6. package/dist/lib/flinksql/FlinkSqlParser.js +3847 -4211
  7. package/dist/lib/flinksql/FlinkSqlParser.js.map +1 -1
  8. package/dist/lib/flinksql/FlinkSqlParserListener.d.ts +13 -22
  9. package/dist/lib/flinksql/FlinkSqlParserVisitor.d.ts +8 -14
  10. package/dist/lib/pgsql/PostgreSQLLexer.d.ts +561 -538
  11. package/dist/lib/pgsql/PostgreSQLLexer.js +3529 -3356
  12. package/dist/lib/pgsql/PostgreSQLLexer.js.map +1 -1
  13. package/dist/lib/pgsql/PostgreSQLParser.d.ts +4756 -3799
  14. package/dist/lib/pgsql/PostgreSQLParser.js +61779 -53458
  15. package/dist/lib/pgsql/PostgreSQLParser.js.map +1 -1
  16. package/dist/lib/pgsql/PostgreSQLParserListener.d.ts +757 -141
  17. package/dist/lib/pgsql/PostgreSQLParserListener.js +1 -1
  18. package/dist/lib/pgsql/PostgreSQLParserListener.js.map +1 -1
  19. package/dist/lib/pgsql/PostgreSQLParserVisitor.d.ts +481 -89
  20. package/dist/lib/pgsql/PostgreSQLParserVisitor.js +1 -1
  21. package/dist/lib/pgsql/PostgreSQLParserVisitor.js.map +1 -1
  22. package/dist/lib/spark/SparkSqlLexer.d.ts +2 -2
  23. package/dist/lib/spark/SparkSqlLexer.js +6 -6
  24. package/dist/lib/spark/SparkSqlLexer.js.map +1 -1
  25. package/dist/lib/spark/SparkSqlParser.d.ts +10 -10
  26. package/dist/lib/spark/SparkSqlParser.js +20 -20
  27. package/dist/lib/spark/SparkSqlParser.js.map +1 -1
  28. package/dist/parser/common/basic-parser-types.d.ts +5 -1
  29. package/dist/parser/common/basic-parser-types.js +4 -0
  30. package/dist/parser/common/basic-parser-types.js.map +1 -1
  31. package/dist/parser/pgsql.d.ts +9 -2
  32. package/dist/parser/pgsql.js +107 -5
  33. package/dist/parser/pgsql.js.map +1 -1
  34. package/package.json +7 -5
  35. package/dist/lib/pgsql/PostgreSQLLexerBase.d.ts +0 -16
  36. package/dist/lib/pgsql/PostgreSQLLexerBase.js +0 -56
  37. package/dist/lib/pgsql/PostgreSQLLexerBase.js.map +0 -1
  38. package/dist/lib/pgsql/PostgreSQLParserBase.d.ts +0 -11
  39. package/dist/lib/pgsql/PostgreSQLParserBase.js +0 -96
  40. package/dist/lib/pgsql/PostgreSQLParserBase.js.map +0 -1
@@ -31,7 +31,11 @@ export declare enum SyntaxContextType {
31
31
  /** function name */
32
32
  FUNCTION = "function",
33
33
  /** function name that will be created */
34
- FUNCTION_CREATE = "functionCreate"
34
+ FUNCTION_CREATE = "functionCreate",
35
+ /** procedure name */
36
+ PROCEDURE = "procedure",
37
+ /** procedure name that will be created */
38
+ PROCEDURE_CREATE = "procedureCreate"
35
39
  }
36
40
  export interface WordRange {
37
41
  /** content of word */
@@ -23,5 +23,9 @@ export var SyntaxContextType;
23
23
  SyntaxContextType["FUNCTION"] = "function";
24
24
  /** function name that will be created */
25
25
  SyntaxContextType["FUNCTION_CREATE"] = "functionCreate";
26
+ /** procedure name */
27
+ SyntaxContextType["PROCEDURE"] = "procedure";
28
+ /** procedure name that will be created */
29
+ SyntaxContextType["PROCEDURE_CREATE"] = "procedureCreate";
26
30
  })(SyntaxContextType || (SyntaxContextType = {}));
27
31
  //# sourceMappingURL=basic-parser-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"basic-parser-types.js","sourceRoot":"","sources":["../../../src/parser/common/basic-parser-types.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,CAAN,IAAY,iBAqBX;AArBD,WAAY,iBAAiB;IACzB,mBAAmB;IACnB,wCAAmB,CAAA;IACnB,yCAAyC;IACzC,qDAAgC,CAAA;IAChC,6CAA6C;IAC7C,0CAAqB,CAAA;IACrB,+CAA+C;IAC/C,uDAAkC,CAAA;IAClC,6CAA6C;IAC7C,oCAAe,CAAA;IACf,2CAA2C;IAC3C,iDAA4B,CAAA;IAC5B,yCAAyC;IACzC,kCAAa,CAAA;IACb,0CAA0C;IAC1C,+CAA0B,CAAA;IAC1B,oBAAoB;IACpB,0CAAqB,CAAA;IACrB,yCAAyC;IACzC,uDAAkC,CAAA;AACtC,CAAC,EArBW,iBAAiB,KAAjB,iBAAiB,QAqB5B"}
1
+ {"version":3,"file":"basic-parser-types.js","sourceRoot":"","sources":["../../../src/parser/common/basic-parser-types.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,CAAN,IAAY,iBAyBX;AAzBD,WAAY,iBAAiB;IACzB,mBAAmB;IACnB,wCAAmB,CAAA;IACnB,yCAAyC;IACzC,qDAAgC,CAAA;IAChC,6CAA6C;IAC7C,0CAAqB,CAAA;IACrB,+CAA+C;IAC/C,uDAAkC,CAAA;IAClC,6CAA6C;IAC7C,oCAAe,CAAA;IACf,2CAA2C;IAC3C,iDAA4B,CAAA;IAC5B,yCAAyC;IACzC,kCAAa,CAAA;IACb,0CAA0C;IAC1C,+CAA0B,CAAA;IAC1B,oBAAoB;IACpB,0CAAqB,CAAA;IACrB,yCAAyC;IACzC,uDAAkC,CAAA;IAClC,qBAAqB;IACrB,4CAAuB,CAAA;IACvB,0CAA0C;IAC1C,yDAAoC,CAAA;AACxC,CAAC,EAzBW,iBAAiB,KAAjB,iBAAiB,QAyB5B"}
@@ -3,11 +3,18 @@ import { CandidatesCollection } from 'antlr4-c3';
3
3
  import { PostgreSQLLexer } from '../lib/pgsql/PostgreSQLLexer';
4
4
  import { PostgreSQLParser, ProgramContext } from '../lib/pgsql/PostgreSQLParser';
5
5
  import BasicParser from './common/basicParser';
6
+ import { PostgreSQLParserListener } from '../lib/pgsql/PostgreSQLParserListener';
6
7
  import { Suggestions } from './common/basic-parser-types';
7
8
  export default class PostgresSQL extends BasicParser<PostgreSQLLexer, ProgramContext, PostgreSQLParser> {
8
9
  protected createLexerFormCharStream(charStreams: any): PostgreSQLLexer;
9
10
  protected createParserFromTokenStream(tokenStream: any): PostgreSQLParser;
10
11
  protected preferredRules: Set<number>;
11
- protected get splitListener(): any;
12
- protected processCandidates(candidates: CandidatesCollection, allTokens: Token[], caretTokenIndex: number): Suggestions<Token>;
12
+ protected get splitListener(): PgSqlSplitListener;
13
+ protected processCandidates(candidates: CandidatesCollection, allTokens: Token[], caretTokenIndex: number, tokenIndexOffset: number): Suggestions<Token>;
14
+ }
15
+ export declare class PgSqlSplitListener implements PostgreSQLParserListener {
16
+ private _statementContext;
17
+ enterProgram: (ctx: ProgramContext) => void;
18
+ exitProgram: (ctx: ProgramContext) => void;
19
+ get statementsContext(): ProgramContext[];
13
20
  }
@@ -1,10 +1,24 @@
1
1
  import { PostgreSQLLexer } from '../lib/pgsql/PostgreSQLLexer';
2
2
  import { PostgreSQLParser } from '../lib/pgsql/PostgreSQLParser';
3
3
  import BasicParser from './common/basicParser';
4
+ import { SyntaxContextType } from './common/basic-parser-types';
4
5
  export default class PostgresSQL extends BasicParser {
5
6
  constructor() {
6
7
  super(...arguments);
7
- this.preferredRules = new Set();
8
+ this.preferredRules = new Set([
9
+ PostgreSQLParser.RULE_table_name_create,
10
+ PostgreSQLParser.RULE_table_name,
11
+ PostgreSQLParser.RULE_function_name,
12
+ PostgreSQLParser.RULE_function_name_create,
13
+ PostgreSQLParser.RULE_schema_name_create,
14
+ PostgreSQLParser.RULE_schema_name,
15
+ PostgreSQLParser.RULE_view_name_create,
16
+ PostgreSQLParser.RULE_view_name,
17
+ PostgreSQLParser.RULE_database_name_create,
18
+ PostgreSQLParser.RULE_database_name,
19
+ PostgreSQLParser.RULE_procedure_name_create,
20
+ PostgreSQLParser.RULE_procedure_name, // procedure name
21
+ ]);
8
22
  }
9
23
  createLexerFormCharStream(charStreams) {
10
24
  const lexer = new PostgreSQLLexer(charStreams);
@@ -14,13 +28,101 @@ export default class PostgresSQL extends BasicParser {
14
28
  return new PostgreSQLParser(tokenStream);
15
29
  }
16
30
  get splitListener() {
17
- return null;
31
+ return new PgSqlSplitListener();
18
32
  }
19
- processCandidates(candidates, allTokens, caretTokenIndex) {
33
+ processCandidates(candidates, allTokens, caretTokenIndex, tokenIndexOffset) {
34
+ const originalSyntaxSuggestions = [];
35
+ const keywords = [];
36
+ for (let candidate of candidates.rules) {
37
+ const [ruleType, candidateRule] = candidate;
38
+ const startTokenIndex = candidateRule.startTokenIndex + tokenIndexOffset;
39
+ const tokenRanges = allTokens.slice(startTokenIndex, caretTokenIndex + tokenIndexOffset + 1);
40
+ let syntaxContextType;
41
+ switch (ruleType) {
42
+ case PostgreSQLParser.RULE_table_name_create: {
43
+ syntaxContextType = SyntaxContextType.TABLE_CREATE;
44
+ break;
45
+ }
46
+ case PostgreSQLParser.RULE_table_name: {
47
+ syntaxContextType = SyntaxContextType.TABLE;
48
+ break;
49
+ }
50
+ case PostgreSQLParser.RULE_function_name_create: {
51
+ syntaxContextType = SyntaxContextType.FUNCTION_CREATE;
52
+ break;
53
+ }
54
+ case PostgreSQLParser.RULE_function_name: {
55
+ syntaxContextType = SyntaxContextType.FUNCTION;
56
+ break;
57
+ }
58
+ case PostgreSQLParser.RULE_schema_name_create: {
59
+ syntaxContextType = SyntaxContextType.DATABASE_CREATE;
60
+ break;
61
+ }
62
+ case PostgreSQLParser.RULE_schema_name: {
63
+ syntaxContextType = SyntaxContextType.DATABASE;
64
+ break;
65
+ }
66
+ case PostgreSQLParser.RULE_view_name_create: {
67
+ syntaxContextType = SyntaxContextType.VIEW_CREATE;
68
+ break;
69
+ }
70
+ case PostgreSQLParser.RULE_view_name: {
71
+ syntaxContextType = SyntaxContextType.VIEW;
72
+ break;
73
+ }
74
+ case PostgreSQLParser.RULE_database_name_create: {
75
+ syntaxContextType = SyntaxContextType.DATABASE_CREATE;
76
+ break;
77
+ }
78
+ case PostgreSQLParser.RULE_database_name: {
79
+ syntaxContextType = SyntaxContextType.DATABASE;
80
+ break;
81
+ }
82
+ case PostgreSQLParser.RULE_procedure_name_create: {
83
+ syntaxContextType = SyntaxContextType.PROCEDURE_CREATE;
84
+ break;
85
+ }
86
+ case PostgreSQLParser.RULE_procedure_name: {
87
+ syntaxContextType = SyntaxContextType.PROCEDURE;
88
+ break;
89
+ }
90
+ default:
91
+ break;
92
+ }
93
+ if (syntaxContextType) {
94
+ originalSyntaxSuggestions.push({
95
+ syntaxContextType,
96
+ wordRanges: tokenRanges,
97
+ });
98
+ }
99
+ }
100
+ for (let candidate of candidates.tokens) {
101
+ const symbolicName = this._parser.vocabulary.getSymbolicName(candidate[0]);
102
+ const displayName = this._parser.vocabulary.getDisplayName(candidate[0]);
103
+ if (symbolicName && symbolicName.startsWith('KW_')) {
104
+ const keyword = displayName.startsWith("'") && displayName.endsWith("'")
105
+ ? displayName.slice(1, -1)
106
+ : displayName;
107
+ keywords.push(keyword);
108
+ }
109
+ }
20
110
  return {
21
- syntax: [],
22
- keywords: [],
111
+ syntax: originalSyntaxSuggestions,
112
+ keywords,
23
113
  };
24
114
  }
25
115
  }
116
+ export class PgSqlSplitListener {
117
+ constructor() {
118
+ this._statementContext = [];
119
+ this.enterProgram = (ctx) => {
120
+ this._statementContext.push(ctx);
121
+ };
122
+ this.exitProgram = (ctx) => { };
123
+ }
124
+ get statementsContext() {
125
+ return this._statementContext;
126
+ }
127
+ }
26
128
  //# sourceMappingURL=pgsql.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pgsql.js","sourceRoot":"","sources":["../../src/parser/pgsql.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAkB,MAAM,+BAA+B,CAAC;AACjF,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAIxC;IAJD;;QAcc,mBAAc,GAAgB,IAAI,GAAG,EAAE,CAAC;IAgBtD,CAAC;IAzBa,yBAAyB,CAAC,WAAW;QAC3C,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC;IACjB,CAAC;IAES,2BAA2B,CAAC,WAAW;QAC7C,OAAO,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAID,IAAc,aAAa;QACvB,OAAO,IAAW,CAAC;IACvB,CAAC;IAES,iBAAiB,CACvB,UAAgC,EAChC,SAAkB,EAClB,eAAuB;QAEvB,OAAO;YACH,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,EAAE;SACf,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"pgsql.js","sourceRoot":"","sources":["../../src/parser/pgsql.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dt-sql-parser",
3
- "version": "4.0.0-beta.4.4",
3
+ "version": "4.0.0-beta.4.6",
4
4
  "description": "SQL Parsers for BigData, built with antlr4",
5
5
  "keywords": [
6
6
  "sql",
@@ -19,11 +19,12 @@
19
19
  ],
20
20
  "scripts": {
21
21
  "prepare": "husky install",
22
+ "prepublishOnly": "npm run build",
22
23
  "antlr4": "node ./scripts/antlr4.js",
23
24
  "build": "rm -rf dist && tsc",
24
25
  "check-types": "tsc -p ./tsconfig.check.json",
25
26
  "test": "NODE_OPTIONS=--max_old_space_size=4096 && jest",
26
- "release": "npm run build && node ./scripts/release.js",
27
+ "release": "node ./scripts/release.js",
27
28
  "lint": "prettier --check '**/*.ts' --config ./.prettierrc",
28
29
  "lint-fix": "prettier --write '**/*.ts' --config ./.prettierrc"
29
30
  },
@@ -55,7 +56,8 @@
55
56
  "registry": "https://registry.npmjs.org/"
56
57
  },
57
58
  "dependencies": {
58
- "antlr4-c3": "^3.0.1",
59
- "antlr4ts": "^0.5.0-alpha.4"
60
- }
59
+ "antlr4-c3": "3.1.1",
60
+ "antlr4ts": "0.5.0-alpha.4"
61
+ },
62
+ "sideEffects": false
61
63
  }
@@ -1,16 +0,0 @@
1
- import { Lexer } from "antlr4ts/Lexer";
2
- export default abstract class PostgreSQLLexerBase extends Lexer {
3
- tags: string[];
4
- _interp: any;
5
- constructor(input: any);
6
- pushTag(): void;
7
- isTag(): boolean;
8
- popTag(): void;
9
- getInputStream(): import("antlr4ts").CharStream;
10
- checkLA(c: any): boolean;
11
- charIsLetter(): any;
12
- HandleNumericFail(): void;
13
- HandleLessLessGreaterGreater(): void;
14
- UnterminatedBlockCommentDebugAssert(): void;
15
- CheckIfUtf32Letter(): any;
16
- }
@@ -1,56 +0,0 @@
1
- import { Lexer } from "antlr4ts/Lexer";
2
- function isLetter(str) {
3
- return str.length === 1 && str.match(/[a-z]/i);
4
- }
5
- export default class PostgreSQLLexerBase extends Lexer {
6
- constructor(input) {
7
- super(input);
8
- this.tags = [];
9
- }
10
- pushTag() {
11
- this.tags.push(this.text);
12
- }
13
- isTag() {
14
- return this.text === this.tags[this.tags.length - 1];
15
- }
16
- popTag() {
17
- this.tags.pop();
18
- }
19
- getInputStream() {
20
- return this._input;
21
- }
22
- checkLA(c) {
23
- return this.getInputStream().LA(1) !== c;
24
- }
25
- charIsLetter() {
26
- return isLetter(this.getInputStream().LA(-1));
27
- }
28
- HandleNumericFail() {
29
- this.getInputStream().seek(this.getInputStream().index - 2);
30
- const Integral = 535;
31
- this.type = Integral;
32
- }
33
- HandleLessLessGreaterGreater() {
34
- const LESS_LESS = 18;
35
- const GREATER_GREATER = 19;
36
- if (this.text === '<<')
37
- this.type = LESS_LESS;
38
- if (this.text === '>>')
39
- this.type = GREATER_GREATER;
40
- }
41
- UnterminatedBlockCommentDebugAssert() {
42
- }
43
- CheckIfUtf32Letter() {
44
- let codePoint = this.getInputStream().LA(-2) << 8 + this.getInputStream().LA(-1);
45
- let c;
46
- if (codePoint < 0x10000) {
47
- c = String.fromCharCode(codePoint);
48
- }
49
- else {
50
- codePoint -= 0x10000;
51
- c = String.fromCharCode(codePoint / 0x400 + 0xd800, codePoint % 0x400 + 0xdc00);
52
- }
53
- return isLetter(c[0]);
54
- }
55
- }
56
- //# sourceMappingURL=PostgreSQLLexerBase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PostgreSQLLexerBase.js","sourceRoot":"","sources":["../../../src/lib/pgsql/PostgreSQLLexerBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,SAAS,QAAQ,CAAC,GAAG;IACjB,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,OAAO,OAAgB,mBAAoB,SAAQ,KAAK;IAK3D,YAAY,KAAK;QACb,KAAK,CAAC,KAAK,CAAC,CAAC;QAJjB,SAAI,GAAa,EAAE,CAAC;IAKpB,CAAC;IAED,OAAO;QACH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM;QACF,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,OAAO,CAAE,CAAC;QACN,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,YAAY;QACR,OAAO,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;IACzB,CAAC;IAED,4BAA4B;QACxB,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,MAAM,eAAe,GAAG,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QAC9C,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IACxD,CAAC;IAED,mCAAmC;IACnC,CAAC;IAED,kBAAkB;QACd,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,CAAC;QACN,IAAI,SAAS,GAAG,OAAO,EAAE;YACrB,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SACtC;aAAM;YACH,SAAS,IAAI,OAAO,CAAC;YACrB,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,GAAG,KAAK,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC;SACnF;QACD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;CACJ"}
@@ -1,11 +0,0 @@
1
- import { Parser } from 'antlr4ts';
2
- import { PostgreSQLParser } from './PostgreSQLParser';
3
- export default abstract class PostgreSQLParserBase extends Parser {
4
- constructor(input: any);
5
- GetParsedSqlTree(script: any, line: any): import("./PostgreSQLParser").ProgramContext;
6
- ParseRoutineBody(_localctx: any): void;
7
- TrimQuotes(s: any): any;
8
- unquote(s: any): string;
9
- GetRoutineBodyString(rule: any): any;
10
- getPostgreSQLParser(script: any): PostgreSQLParser;
11
- }
@@ -1,96 +0,0 @@
1
- import { CharStreams, CommonTokenStream, Parser } from 'antlr4ts';
2
- import { PostgreSQLLexer } from './PostgreSQLLexer';
3
- import { PostgreSQLParser } from './PostgreSQLParser';
4
- export default class PostgreSQLParserBase extends Parser {
5
- constructor(input) {
6
- super(input);
7
- }
8
- GetParsedSqlTree(script, line) {
9
- const ph = this.getPostgreSQLParser(script);
10
- return ph.program();
11
- }
12
- ParseRoutineBody(_localctx) {
13
- let lang = null;
14
- for (let _i = 0, _a = _localctx.createfunc_opt_item(); _i < _a.length; _i++) {
15
- const coi = _a[_i];
16
- if (!!coi.LANGUAGE()) {
17
- if (!!coi.nonreservedword_or_sconst()) {
18
- if (!!coi.nonreservedword_or_sconst().nonreservedword()) {
19
- if (!!coi.nonreservedword_or_sconst().nonreservedword().identifier()) {
20
- if (!!coi.nonreservedword_or_sconst().nonreservedword().identifier().Identifier()) {
21
- lang = coi.nonreservedword_or_sconst().nonreservedword().identifier().Identifier().getText();
22
- break;
23
- }
24
- }
25
- }
26
- }
27
- }
28
- }
29
- if (!lang)
30
- return;
31
- let func_as = null;
32
- for (const a of _localctx.createfunc_opt_item()) {
33
- if (!a.func_as()) {
34
- func_as = a;
35
- break;
36
- }
37
- }
38
- if (!func_as) {
39
- const txt = this.GetRoutineBodyString(func_as.func_as().sconst(0));
40
- const line = func_as.func_as().sconst(0).start.getLine();
41
- const ph = this.getPostgreSQLParser(txt);
42
- switch (lang) {
43
- case 'plpgsql':
44
- func_as.func_as().Definition = ph.plsqlroot();
45
- break;
46
- case 'sql':
47
- func_as.func_as().Definition = ph.program();
48
- break;
49
- }
50
- }
51
- }
52
- TrimQuotes(s) {
53
- return (!s) ? s : s.substring(1, s.length() - 1);
54
- }
55
- unquote(s) {
56
- const slength = s.length();
57
- let r = '';
58
- let i = 0;
59
- while (i < slength) {
60
- const c = s.charAt(i);
61
- r = r.concat(c);
62
- if (c === '\'' && i < slength - 1 && (s.charAt(i + 1) === '\''))
63
- i++;
64
- i++;
65
- }
66
- return r.toString();
67
- }
68
- GetRoutineBodyString(rule) {
69
- const anysconst = rule.anysconst();
70
- const StringConstant = anysconst.StringConstant();
71
- if (null !== StringConstant)
72
- return this.unquote(this.TrimQuotes(StringConstant.getText()));
73
- const UnicodeEscapeStringConstant = anysconst.UnicodeEscapeStringConstant();
74
- if (null !== UnicodeEscapeStringConstant)
75
- return this.TrimQuotes(UnicodeEscapeStringConstant.getText());
76
- const EscapeStringConstant = anysconst.EscapeStringConstant();
77
- if (null !== EscapeStringConstant)
78
- return this.TrimQuotes(EscapeStringConstant.getText());
79
- let result = '';
80
- const dollartext = anysconst.DollarText();
81
- for (const s of dollartext) {
82
- result += s.getText();
83
- }
84
- return result;
85
- }
86
- getPostgreSQLParser(script) {
87
- const charStream = CharStreams.fromString(script);
88
- const lexer = new PostgreSQLLexer(charStream);
89
- const tokens = new CommonTokenStream(lexer);
90
- const parser = new PostgreSQLParser(tokens);
91
- // lexer.removeErrorListeners();
92
- // parser.removeErrorListeners();
93
- return parser;
94
- }
95
- }
96
- //# sourceMappingURL=PostgreSQLParserBase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PostgreSQLParserBase.js","sourceRoot":"","sources":["../../../src/lib/pgsql/PostgreSQLParserBase.ts"],"names":[],"mappings":"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"}