update new parser

This commit is contained in:
HSunboy
2019-12-31 18:34:31 +08:00
parent 6eda025e39
commit 93125a715a
207 changed files with 108782 additions and 21177 deletions

View File

@ -1,7 +1,45 @@
// import * as sqlSyntaxParser from '../core/sqlSyntaxParser';
import * as sqlSyntaxParser from '../core/sqlSyntaxParser';
import * as sqlAutoCompleteParser from '../core/sqlAutoCompleteParser';
import hiveSyntaxParser from '../core/parse/hive/hiveSyntaxParser';
import hiveAutoCompleteParser from '../core/parse/hive/hiveAutocompleteParser';
import impalaSyntaxParser from '../core/parse/impala/impalaSyntaxParser';
import impalaAutoCompleteParser from '../core/parse/impala/impalaAutocompleteParser';
import genericSyntaxParser from '../core/parse/generic/genericSyntaxParser';
import genericAutocompleteParser from '../core/parse/generic/genericAutocompleteParser';
import { SyntaxParser, SyntaxResult } from '../core/sqlSyntaxParser';
import { CompleteParser, CompleteResult } from '../core/sqlAutoCompleteParser';
function getSyntaxParser (type: sqlType): any {
switch (type) {
case sqlType.Hive: {
return hiveSyntaxParser;
}
case sqlType.Impala: {
return impalaSyntaxParser;
}
case sqlType.None: {
return genericSyntaxParser;
}
default: {
return hiveSyntaxParser;
}
}
}
function getAutoCompleteParser (type: sqlType): any {
switch (type) {
case sqlType.Hive: {
return hiveAutoCompleteParser;
}
case sqlType.Impala: {
return impalaAutoCompleteParser;
}
case sqlType.None: {
return genericAutocompleteParser;
}
default: {
return hiveAutoCompleteParser;
}
}
}
enum sqlType {
Hive = 'hive',
None = 'sql',
@ -20,17 +58,20 @@ function sqlToParserArgs (sql: sql) {
/**
* 校验语法
*/
function parseSyntax(sql: sql, type:sqlType = sqlType.Hive): sqlSyntaxParser.SyntaxResult | false {
function parseSyntax(sql: sql, type:sqlType = sqlType.Hive): SyntaxResult | false {
const parserArgs = sqlToParserArgs(sql);
return sqlSyntaxParser.parser.parseSyntax(parserArgs[0], parserArgs[1], type, false)
console.log(
getSyntaxParser(type)
)
return (getSyntaxParser(type) as SyntaxParser).parseSyntax(parserArgs[0], parserArgs[1], type, false)
}
/**
* 自动补全提示
*/
function parserSql(sql: sql, type: sqlType = sqlType.Hive): sqlAutoCompleteParser.CompleteResult {
function parserSql(sql: sql, type: sqlType = sqlType.Hive): CompleteResult {
const parserArgs = sqlToParserArgs(sql);
return sqlAutoCompleteParser.parser.parseSql(parserArgs[0], parserArgs[1], type, false)
return (getAutoCompleteParser(type) as CompleteParser).parseSql(parserArgs[0], parserArgs[1], type, false)
}
export {