feat: #190 improve mysql grammer (#196)

* refactor: generic rename to mysql

* refactor: g4 with mysql syntax

* test: mysql syntax

* refactor: remove useless keywords

* refactor: remove nonReserved keywords

* refactor: lint specificFunction

---------

Co-authored-by: liuyi <liuyi@dtstack.com>
This commit is contained in:
琉易
2023-11-27 15:25:40 +08:00
committed by GitHub
parent 84b2d776dc
commit 428d851913
139 changed files with 123150 additions and 110286 deletions

View File

@ -1,3 +0,0 @@
# MySQL Grammar
[MySQL Grammar](https://github.com/mysql/mysql-workbench/tree/8.0/library/parsers/grammars)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2,8 +2,8 @@ export * from './parser';
export * from './utils';
export * from './lib/flinksql/FlinkSqlParserListener';
export * from './lib/flinksql/FlinkSqlParserVisitor';
export * from './lib/generic/SqlParserVisitor';
export * from './lib/generic/SqlParserListener';
export * from './lib/mysql/MySqlParserVisitor';
export * from './lib/mysql/MySqlParserListener';
export * from './lib/hive/HiveSqlParserListener';
export * from './lib/hive/HiveSqlParserVisitor';
export * from './lib/plsql/PlSqlParserListener';

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

6918
src/lib/mysql/MySqlLexer.ts Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

84250
src/lib/mysql/MySqlParser.ts Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
export { default as GenericSQL } from './generic';
export { default as MySQL } from './mysql';
export { default as PLSQL } from './plsql';
export { default as HiveSQL } from './hive';
export { default as FlinkSQL } from './flinksql';

View File

@ -1,18 +1,18 @@
import { Token } from 'antlr4ts';
import { CandidatesCollection } from 'antlr4-c3';
import { SqlLexer } from '../lib/generic/SqlLexer';
import { SqlParser, ProgramContext } from '../lib/generic/SqlParser';
import { MySqlLexer } from '../lib/mysql/MySqlLexer';
import { MySqlParser, ProgramContext } from '../lib/mysql/MySqlParser';
import BasicParser from './common/basicParser';
import { Suggestions } from './common/basic-parser-types';
export default class GenericSQL extends BasicParser<SqlLexer, ProgramContext, SqlParser> {
protected createLexerFormCharStream(charStreams): SqlLexer {
const lexer = new SqlLexer(charStreams);
export default class MySQL extends BasicParser<MySqlLexer, ProgramContext, MySqlParser> {
protected createLexerFormCharStream(charStreams): MySqlLexer {
const lexer = new MySqlLexer(charStreams);
return lexer;
}
protected createParserFromTokenStream(tokenStream): SqlParser {
return new SqlParser(tokenStream);
protected createParserFromTokenStream(tokenStream): MySqlParser {
return new MySqlParser(tokenStream);
}
protected preferredRules: Set<number> = new Set();