feat: use SLL mode (#269)
* feat: use SLL(*) PredictionMode for better performance * feat: optimize mysql grammar to fit SLL mode * feat: optimize postgre grammmar to fit SLL mode * feat: optimize spark grammar to fit SLL mode * test: correct unit tests * feat: optimize pgsql grammar
This commit is contained in:
@ -8,6 +8,7 @@ import {
|
||||
ParserRuleContext,
|
||||
ParseTreeWalker,
|
||||
ParseTreeListener,
|
||||
PredictionMode,
|
||||
} from 'antlr4ng';
|
||||
import { CandidatesCollection, CodeCompletionCore } from 'antlr4-c3';
|
||||
import { findCaretTokenIndex } from './utils/findCaretTokenIndex';
|
||||
@ -110,7 +111,7 @@ export default abstract class BasicParser<
|
||||
const lexer = this.createLexer(input, errorListener);
|
||||
const tokenStream = new CommonTokenStream(lexer);
|
||||
const parser = this.createParserFromTokenStream(tokenStream);
|
||||
|
||||
parser.interpreter.predictionMode = PredictionMode.SLL;
|
||||
if (errorListener) {
|
||||
parser.removeErrorListeners();
|
||||
parser.addErrorListener(new ParseErrorListener(errorListener));
|
||||
@ -155,6 +156,7 @@ export default abstract class BasicParser<
|
||||
this._tokenStream.fill();
|
||||
|
||||
this._parser = this.createParserFromTokenStream(this._tokenStream);
|
||||
this._parser.interpreter.predictionMode = PredictionMode.SLL;
|
||||
this._parser.buildParseTrees = true;
|
||||
this._parser.errorHandler = new ErrorStrategy();
|
||||
|
||||
@ -340,6 +342,7 @@ export default abstract class BasicParser<
|
||||
tokenStream.fill();
|
||||
|
||||
const parser = this.createParserFromTokenStream(tokenStream);
|
||||
parser.interpreter.predictionMode = PredictionMode.SLL;
|
||||
parser.removeErrorListeners();
|
||||
parser.buildParseTrees = true;
|
||||
parser.errorHandler = new ErrorStrategy();
|
||||
|
Reference in New Issue
Block a user