Or more precisely my Error Listener, when I call parser.getErrorListeners(), is shown as the only one, but when there is an error the syntaxError() of my Error Listener is not called and instead is called the one of the Console Error Listener.
let errorListener = new DOTErrorListener();
lexer.removeErrorListeners();
parser.removeErrorListeners();
lexer.addErrorListener(errorListener);
parser.addErrorListener(errorListener);
console.log(lexer.getErrorListeners()); // this outputs [ DOTErrorListener ]
console.log(parser.getErrorListeners()); // this outputs [ DOTErrorListener ]
ParseTreeWalker.DEFAULT.walk(listener, tree);
This is DOTErrorListener
export class DOTErrorListener extends BaseErrorListener {
@Override
public syntaxError(@NotNull recognizer, offendingSymbol, line, charPositionInLine, @NotNull msg, e) {
console.error("ERROR! ERROR! ABORT MISSION!");
}
}
Output
[ DOTErrorListener ]
[ DOTErrorListener ]
line 1:0 mismatched input 'graphi' expecting {STRICT, GRAPH, DIGRAPH}
Any ideas?
Am 27.03.2017 um 16:53 schrieb gabriele....@gmail.com:I am trying to create a Language Server for/with Visual Studio Code. So I am creating a client, for VS Code, and a server. I am using Node and ANTLR in the server part.
I am using Typescript/Javascript and I have tried both the Javascript (release) and the Typescript (alpha) libraries, neither of which works.
I have two issues with the Error Listeners:
- the default Console Error Listener remains
- mine isn't called
Or more precisely my Error Listener, when I call parser.getErrorListeners(), is shown as the only one, but when there is an error the syntaxError() of my Error Listener is not called and instead is called the one of the Console Error Listener.
let errorListener = new DOTErrorListener();
lexer.removeErrorListeners();
parser.removeErrorListeners();
lexer.addErrorListener(errorListener);
parser.addErrorListener(errorListener);
console.log(lexer.getErrorListeners()); // this outputs [ DOTErrorListener ]
console.log(parser.getErrorListeners());// this outputs [ DOTErrorListener ]
ParseTreeWalker.DEFAULT.walk(listener, tree);
This is DOTErrorListener
export class DOTErrorListener extends BaseErrorListener {
@Override
public syntaxError(@NotNull recognizer, offendingSymbol, line, charPositionInLine, @NotNull msg, e) {
console.error("ERROR! ERROR! ABORT MISSION!");
}
}