feat: FlinkSQL supports auto complete (#115)
* feat: add antlr4-c3 dependencies * feat: distinguish table, catalog and database from uid * feat: move semicolon from sqlStatements to sqlStatement * chore: move antlr4ts-cli to devDependencies * feat: improve basic parser and support suggestions of token and syntax * feat: implement suggest method in sql parsers * test: flink sql suggestion test cases * feat: optimize ts defination of suggestion * feat: add split listener and optimize performance of auto-completion * test: supplementary flink suggestion unit tests
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
// Generated from /Users/ziv/github.com/dt-sql-parser/src/grammar/flinksql/FlinkSqlLexer.g4 by ANTLR 4.9.0-SNAPSHOT
|
||||
// Generated from /Users/hayden/Desktop/dt-works/dt-sql-parser/src/grammar/flinksql/FlinkSqlLexer.g4 by ANTLR 4.9.0-SNAPSHOT
|
||||
|
||||
|
||||
import { ATN } from "antlr4ts/atn/ATN";
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
// Generated from /Users/ziv/github.com/dt-sql-parser/src/grammar/flinksql/FlinkSqlParser.g4 by ANTLR 4.9.0-SNAPSHOT
|
||||
// Generated from /Users/hayden/Desktop/dt-works/dt-sql-parser/src/grammar/flinksql/FlinkSqlParser.g4 by ANTLR 4.9.0-SNAPSHOT
|
||||
|
||||
|
||||
import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener";
|
||||
@ -84,7 +84,6 @@ import { TransformListContext } from "./FlinkSqlParser";
|
||||
import { TransformContext } from "./FlinkSqlParser";
|
||||
import { TransformArgumentContext } from "./FlinkSqlParser";
|
||||
import { LikeDefinitionContext } from "./FlinkSqlParser";
|
||||
import { SourceTableContext } from "./FlinkSqlParser";
|
||||
import { LikeOptionContext } from "./FlinkSqlParser";
|
||||
import { CreateCatalogContext } from "./FlinkSqlParser";
|
||||
import { CreateDatabaseContext } from "./FlinkSqlParser";
|
||||
@ -127,7 +126,6 @@ import { FromClauseContext } from "./FlinkSqlParser";
|
||||
import { TableExpressionContext } from "./FlinkSqlParser";
|
||||
import { TableReferenceContext } from "./FlinkSqlParser";
|
||||
import { TablePrimaryContext } from "./FlinkSqlParser";
|
||||
import { TablePathContext } from "./FlinkSqlParser";
|
||||
import { SystemTimePeriodContext } from "./FlinkSqlParser";
|
||||
import { DateTimeExpressionContext } from "./FlinkSqlParser";
|
||||
import { InlineDataValueClauseContext } from "./FlinkSqlParser";
|
||||
@ -192,6 +190,11 @@ import { IdentifierContext } from "./FlinkSqlParser";
|
||||
import { UnquotedIdentifierContext } from "./FlinkSqlParser";
|
||||
import { QuotedIdentifierContext } from "./FlinkSqlParser";
|
||||
import { WhenClauseContext } from "./FlinkSqlParser";
|
||||
import { CatalogPathContext } from "./FlinkSqlParser";
|
||||
import { DatabasePathContext } from "./FlinkSqlParser";
|
||||
import { DatabasePathCreateContext } from "./FlinkSqlParser";
|
||||
import { TablePathCreateContext } from "./FlinkSqlParser";
|
||||
import { TablePathContext } from "./FlinkSqlParser";
|
||||
import { UidContext } from "./FlinkSqlParser";
|
||||
import { WithOptionContext } from "./FlinkSqlParser";
|
||||
import { IfNotExistsContext } from "./FlinkSqlParser";
|
||||
@ -1177,17 +1180,6 @@ export interface FlinkSqlParserListener extends ParseTreeListener {
|
||||
*/
|
||||
exitLikeDefinition?: (ctx: LikeDefinitionContext) => void;
|
||||
|
||||
/**
|
||||
* Enter a parse tree produced by `FlinkSqlParser.sourceTable`.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
enterSourceTable?: (ctx: SourceTableContext) => void;
|
||||
/**
|
||||
* Exit a parse tree produced by `FlinkSqlParser.sourceTable`.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
exitSourceTable?: (ctx: SourceTableContext) => void;
|
||||
|
||||
/**
|
||||
* Enter a parse tree produced by `FlinkSqlParser.likeOption`.
|
||||
* @param ctx the parse tree
|
||||
@ -1650,17 +1642,6 @@ export interface FlinkSqlParserListener extends ParseTreeListener {
|
||||
*/
|
||||
exitTablePrimary?: (ctx: TablePrimaryContext) => void;
|
||||
|
||||
/**
|
||||
* Enter a parse tree produced by `FlinkSqlParser.tablePath`.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
enterTablePath?: (ctx: TablePathContext) => void;
|
||||
/**
|
||||
* Exit a parse tree produced by `FlinkSqlParser.tablePath`.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
exitTablePath?: (ctx: TablePathContext) => void;
|
||||
|
||||
/**
|
||||
* Enter a parse tree produced by `FlinkSqlParser.systemTimePeriod`.
|
||||
* @param ctx the parse tree
|
||||
@ -2365,6 +2346,61 @@ export interface FlinkSqlParserListener extends ParseTreeListener {
|
||||
*/
|
||||
exitWhenClause?: (ctx: WhenClauseContext) => void;
|
||||
|
||||
/**
|
||||
* Enter a parse tree produced by `FlinkSqlParser.catalogPath`.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
enterCatalogPath?: (ctx: CatalogPathContext) => void;
|
||||
/**
|
||||
* Exit a parse tree produced by `FlinkSqlParser.catalogPath`.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
exitCatalogPath?: (ctx: CatalogPathContext) => void;
|
||||
|
||||
/**
|
||||
* Enter a parse tree produced by `FlinkSqlParser.databasePath`.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
enterDatabasePath?: (ctx: DatabasePathContext) => void;
|
||||
/**
|
||||
* Exit a parse tree produced by `FlinkSqlParser.databasePath`.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
exitDatabasePath?: (ctx: DatabasePathContext) => void;
|
||||
|
||||
/**
|
||||
* Enter a parse tree produced by `FlinkSqlParser.databasePathCreate`.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
enterDatabasePathCreate?: (ctx: DatabasePathCreateContext) => void;
|
||||
/**
|
||||
* Exit a parse tree produced by `FlinkSqlParser.databasePathCreate`.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
exitDatabasePathCreate?: (ctx: DatabasePathCreateContext) => void;
|
||||
|
||||
/**
|
||||
* Enter a parse tree produced by `FlinkSqlParser.tablePathCreate`.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
enterTablePathCreate?: (ctx: TablePathCreateContext) => void;
|
||||
/**
|
||||
* Exit a parse tree produced by `FlinkSqlParser.tablePathCreate`.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
exitTablePathCreate?: (ctx: TablePathCreateContext) => void;
|
||||
|
||||
/**
|
||||
* Enter a parse tree produced by `FlinkSqlParser.tablePath`.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
enterTablePath?: (ctx: TablePathContext) => void;
|
||||
/**
|
||||
* Exit a parse tree produced by `FlinkSqlParser.tablePath`.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
exitTablePath?: (ctx: TablePathContext) => void;
|
||||
|
||||
/**
|
||||
* Enter a parse tree produced by `FlinkSqlParser.uid`.
|
||||
* @param ctx the parse tree
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Generated from /Users/ziv/github.com/dt-sql-parser/src/grammar/flinksql/FlinkSqlParser.g4 by ANTLR 4.9.0-SNAPSHOT
|
||||
// Generated from /Users/hayden/Desktop/dt-works/dt-sql-parser/src/grammar/flinksql/FlinkSqlParser.g4 by ANTLR 4.9.0-SNAPSHOT
|
||||
|
||||
|
||||
import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor";
|
||||
@ -84,7 +84,6 @@ import { TransformListContext } from "./FlinkSqlParser";
|
||||
import { TransformContext } from "./FlinkSqlParser";
|
||||
import { TransformArgumentContext } from "./FlinkSqlParser";
|
||||
import { LikeDefinitionContext } from "./FlinkSqlParser";
|
||||
import { SourceTableContext } from "./FlinkSqlParser";
|
||||
import { LikeOptionContext } from "./FlinkSqlParser";
|
||||
import { CreateCatalogContext } from "./FlinkSqlParser";
|
||||
import { CreateDatabaseContext } from "./FlinkSqlParser";
|
||||
@ -127,7 +126,6 @@ import { FromClauseContext } from "./FlinkSqlParser";
|
||||
import { TableExpressionContext } from "./FlinkSqlParser";
|
||||
import { TableReferenceContext } from "./FlinkSqlParser";
|
||||
import { TablePrimaryContext } from "./FlinkSqlParser";
|
||||
import { TablePathContext } from "./FlinkSqlParser";
|
||||
import { SystemTimePeriodContext } from "./FlinkSqlParser";
|
||||
import { DateTimeExpressionContext } from "./FlinkSqlParser";
|
||||
import { InlineDataValueClauseContext } from "./FlinkSqlParser";
|
||||
@ -192,6 +190,11 @@ import { IdentifierContext } from "./FlinkSqlParser";
|
||||
import { UnquotedIdentifierContext } from "./FlinkSqlParser";
|
||||
import { QuotedIdentifierContext } from "./FlinkSqlParser";
|
||||
import { WhenClauseContext } from "./FlinkSqlParser";
|
||||
import { CatalogPathContext } from "./FlinkSqlParser";
|
||||
import { DatabasePathContext } from "./FlinkSqlParser";
|
||||
import { DatabasePathCreateContext } from "./FlinkSqlParser";
|
||||
import { TablePathCreateContext } from "./FlinkSqlParser";
|
||||
import { TablePathContext } from "./FlinkSqlParser";
|
||||
import { UidContext } from "./FlinkSqlParser";
|
||||
import { WithOptionContext } from "./FlinkSqlParser";
|
||||
import { IfNotExistsContext } from "./FlinkSqlParser";
|
||||
@ -825,13 +828,6 @@ export interface FlinkSqlParserVisitor<Result> extends ParseTreeVisitor<Result>
|
||||
*/
|
||||
visitLikeDefinition?: (ctx: LikeDefinitionContext) => Result;
|
||||
|
||||
/**
|
||||
* Visit a parse tree produced by `FlinkSqlParser.sourceTable`.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
visitSourceTable?: (ctx: SourceTableContext) => Result;
|
||||
|
||||
/**
|
||||
* Visit a parse tree produced by `FlinkSqlParser.likeOption`.
|
||||
* @param ctx the parse tree
|
||||
@ -1126,13 +1122,6 @@ export interface FlinkSqlParserVisitor<Result> extends ParseTreeVisitor<Result>
|
||||
*/
|
||||
visitTablePrimary?: (ctx: TablePrimaryContext) => Result;
|
||||
|
||||
/**
|
||||
* Visit a parse tree produced by `FlinkSqlParser.tablePath`.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
visitTablePath?: (ctx: TablePathContext) => Result;
|
||||
|
||||
/**
|
||||
* Visit a parse tree produced by `FlinkSqlParser.systemTimePeriod`.
|
||||
* @param ctx the parse tree
|
||||
@ -1581,6 +1570,41 @@ export interface FlinkSqlParserVisitor<Result> extends ParseTreeVisitor<Result>
|
||||
*/
|
||||
visitWhenClause?: (ctx: WhenClauseContext) => Result;
|
||||
|
||||
/**
|
||||
* Visit a parse tree produced by `FlinkSqlParser.catalogPath`.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
visitCatalogPath?: (ctx: CatalogPathContext) => Result;
|
||||
|
||||
/**
|
||||
* Visit a parse tree produced by `FlinkSqlParser.databasePath`.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
visitDatabasePath?: (ctx: DatabasePathContext) => Result;
|
||||
|
||||
/**
|
||||
* Visit a parse tree produced by `FlinkSqlParser.databasePathCreate`.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
visitDatabasePathCreate?: (ctx: DatabasePathCreateContext) => Result;
|
||||
|
||||
/**
|
||||
* Visit a parse tree produced by `FlinkSqlParser.tablePathCreate`.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
visitTablePathCreate?: (ctx: TablePathCreateContext) => Result;
|
||||
|
||||
/**
|
||||
* Visit a parse tree produced by `FlinkSqlParser.tablePath`.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
visitTablePath?: (ctx: TablePathContext) => Result;
|
||||
|
||||
/**
|
||||
* Visit a parse tree produced by `FlinkSqlParser.uid`.
|
||||
* @param ctx the parse tree
|
||||
|
Reference in New Issue
Block a user