private void AddSqlAccessorSyntaxError(string message, ParserRuleContext context) { if (_saSyntaxErrorsException == null) { _saSyntaxErrorsException = new SqlSyntaxErrorsException(_tokens.TokenSource.InputStream.ToString()); } _saSyntaxErrorsException.AddError(context.Start.Line, context.Start.Column, message, null); }
public override void SyntaxError(System.IO.TextWriter output , IRecognizer recognizer , IToken offendingSymbol , int line , int charPositionInLine , string msg , RecognitionException e) { if (ex == null) { // 最初の文法エラーが発生した後はASTの構築ができないので、 // ConstructASTListenerを処理させないようにする ((Parser)recognizer).RemoveParseListeners(); var failedSql = ((CommonTokenStream)recognizer.InputStream).TokenSource.InputStream.ToString(); ex = new SqlSyntaxErrorsException(failedSql); } ex.AddError(line, charPositionInLine, msg, e); }