diff --git a/src/main/java/org/xembly/Verbs.java b/src/main/java/org/xembly/Verbs.java index dd32745a..68255a00 100644 --- a/src/main/java/org/xembly/Verbs.java +++ b/src/main/java/org/xembly/Verbs.java @@ -62,27 +62,17 @@ final class Verbs { * @return Collection of directives */ public Collection directives() { - final ANTLRErrorListener errors = new BaseErrorListener() { - // @checkstyle ParameterNumberCheck (10 lines) - @Override - public void syntaxError(final Recognizer recognizer, - final Object symbol, final int line, - final int position, final String msg, - final RecognitionException error) { - throw new SyntaxException(Verbs.this.text, error); - } - }; final XemblyLexer lexer = new XemblyLexer( CharStreams.fromString(this.text) ); lexer.removeErrorListeners(); - lexer.addErrorListener(errors); + lexer.addErrorListener(this.errors()); final XemblyParser parser = new XemblyParser( new CommonTokenStream(lexer) ); parser.removeErrorListeners(); - parser.addErrorListener(errors); + parser.addErrorListener(this.errors()); try { return parser.directives().ret; } catch (final ParsingException ex) { @@ -90,4 +80,21 @@ public void syntaxError(final Recognizer recognizer, } } + /** + * Errors listener. + * @return Listener + */ + private ANTLRErrorListener errors() { + return new BaseErrorListener() { + // @checkstyle ParameterNumberCheck (10 lines) + @Override + public void syntaxError(final Recognizer recognizer, + final Object symbol, final int line, + final int position, final String msg, + final RecognitionException error) { + throw new SyntaxException(Verbs.this.text, error); + } + }; + } + }