Skip to content

Commit d817b1b

Browse files
committed
replace antlr default error listener (which prints to console) with error listener which uses our logger
1 parent bc24b62 commit d817b1b

1 file changed

Lines changed: 14 additions & 4 deletions

File tree

src/main/java/graphql/parser/Parser.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33
import graphql.language.Document;
44
import graphql.parser.antlr.GraphqlLexer;
55
import graphql.parser.antlr.GraphqlParser;
6-
import org.antlr.v4.runtime.ANTLRInputStream;
7-
import org.antlr.v4.runtime.CommonTokenStream;
8-
import org.antlr.v4.runtime.DefaultErrorStrategy;
9-
import org.antlr.v4.runtime.RecognitionException;
6+
import org.antlr.v4.runtime.*;
107
import org.antlr.v4.runtime.atn.PredictionMode;
8+
import org.slf4j.Logger;
9+
import org.slf4j.LoggerFactory;
1110

1211
public class Parser {
1312

13+
private static final Logger log = LoggerFactory.getLogger(Parser.class);
14+
1415

1516
public Document parseDocument(String input) {
1617

@@ -19,6 +20,8 @@ public Document parseDocument(String input) {
1920
CommonTokenStream tokens = new CommonTokenStream(lexer);
2021

2122
GraphqlParser parser = new GraphqlParser(tokens);
23+
parser.removeErrorListeners();
24+
parser.addErrorListener(new ErrorListener());
2225
parser.getInterpreter().setPredictionMode(PredictionMode.SLL);
2326
parser.setErrorHandler(new ErrorStrategy());
2427
GraphqlParser.DocumentContext document = parser.document();
@@ -37,4 +40,11 @@ public void recover(org.antlr.v4.runtime.Parser recognizer, RecognitionException
3740
}
3841
}
3942

43+
private class ErrorListener extends BaseErrorListener {
44+
@Override
45+
public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line, int charPositionInLine, String msg, RecognitionException e) {
46+
log.error("graphql syntax error: line " + line + ":" + charPositionInLine + " " + msg);
47+
}
48+
}
49+
4050
}

0 commit comments

Comments
 (0)