Пример #1
0
 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);
 }