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.
- package/README.md +16 -16
- package/dist/lib/flinksql/FlinkSqlLexer.d.ts +542 -408
- package/dist/lib/flinksql/FlinkSqlLexer.js +3474 -2368
- package/dist/lib/flinksql/FlinkSqlLexer.js.map +1 -1
- package/dist/lib/flinksql/FlinkSqlParser.d.ts +634 -776
- package/dist/lib/flinksql/FlinkSqlParser.js +3847 -4211
- package/dist/lib/flinksql/FlinkSqlParser.js.map +1 -1
- package/dist/lib/flinksql/FlinkSqlParserListener.d.ts +13 -22
- package/dist/lib/flinksql/FlinkSqlParserVisitor.d.ts +8 -14
- package/dist/lib/pgsql/PostgreSQLLexer.d.ts +561 -538
- package/dist/lib/pgsql/PostgreSQLLexer.js +3529 -3356
- package/dist/lib/pgsql/PostgreSQLLexer.js.map +1 -1
- package/dist/lib/pgsql/PostgreSQLParser.d.ts +4756 -3799
- package/dist/lib/pgsql/PostgreSQLParser.js +61779 -53458
- package/dist/lib/pgsql/PostgreSQLParser.js.map +1 -1
- package/dist/lib/pgsql/PostgreSQLParserListener.d.ts +757 -141
- package/dist/lib/pgsql/PostgreSQLParserListener.js +1 -1
- package/dist/lib/pgsql/PostgreSQLParserListener.js.map +1 -1
- package/dist/lib/pgsql/PostgreSQLParserVisitor.d.ts +481 -89
- package/dist/lib/pgsql/PostgreSQLParserVisitor.js +1 -1
- package/dist/lib/pgsql/PostgreSQLParserVisitor.js.map +1 -1
- package/dist/lib/spark/SparkSqlLexer.d.ts +2 -2
- package/dist/lib/spark/SparkSqlLexer.js +6 -6
- package/dist/lib/spark/SparkSqlLexer.js.map +1 -1
- package/dist/lib/spark/SparkSqlParser.d.ts +10 -10
- package/dist/lib/spark/SparkSqlParser.js +20 -20
- package/dist/lib/spark/SparkSqlParser.js.map +1 -1
- package/dist/parser/common/basic-parser-types.d.ts +5 -1
- package/dist/parser/common/basic-parser-types.js +4 -0
- package/dist/parser/common/basic-parser-types.js.map +1 -1
- package/dist/parser/pgsql.d.ts +9 -2
- package/dist/parser/pgsql.js +107 -5
- package/dist/parser/pgsql.js.map +1 -1
- package/package.json +7 -5
- package/dist/lib/pgsql/PostgreSQLLexerBase.d.ts +0 -16
- package/dist/lib/pgsql/PostgreSQLLexerBase.js +0 -56
- package/dist/lib/pgsql/PostgreSQLLexerBase.js.map +0 -1
- package/dist/lib/pgsql/PostgreSQLParserBase.d.ts +0 -11
- package/dist/lib/pgsql/PostgreSQLParserBase.js +0 -96
- 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,
|
|
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"}
|
package/dist/parser/pgsql.d.ts
CHANGED
|
@@ -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():
|
|
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
|
}
|
package/dist/parser/pgsql.js
CHANGED
|
@@ -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
|
|
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
|
package/dist/parser/pgsql.js.map
CHANGED
|
@@ -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,
|
|
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.
|
|
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": "
|
|
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": "
|
|
59
|
-
"antlr4ts": "
|
|
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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"}
|