From 3a4c8d8bc6fdb1f0ce95cc17f22d4c724de0f0ee Mon Sep 17 00:00:00 2001 From: Renata Hodovan Date: Sun, 11 Dec 2016 00:59:24 +0100 Subject: [PATCH] Implement the fix in #1471 for JavaScript target. --- runtime/JavaScript/src/antlr4/Parser.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/runtime/JavaScript/src/antlr4/Parser.js b/runtime/JavaScript/src/antlr4/Parser.js index 74211aacd..6d20dd8ab 100644 --- a/runtime/JavaScript/src/antlr4/Parser.js +++ b/runtime/JavaScript/src/antlr4/Parser.js @@ -9,6 +9,8 @@ var Recognizer = require('./Recognizer').Recognizer; var DefaultErrorStrategy = require('./error/ErrorStrategy').DefaultErrorStrategy; var ATNDeserializer = require('./atn/ATNDeserializer').ATNDeserializer; var ATNDeserializationOptions = require('./atn/ATNDeserializationOptions').ATNDeserializationOptions; +var TerminalNode = require('./tree/Tree').TerminalNode; +var ErrorNode = require('./tree/Tree').ErrorNode; function TraceListener(parser) { ParseTreeListener.call(this); @@ -387,7 +389,11 @@ Parser.prototype.consume = function() { node.invokingState = this.state; if (hasListener) { this._parseListeners.map(function(listener) { - listener.visitTerminal(node); + if (node instanceof ErrorNode || (node.isErrorNode !== undefined && node.isErrorNode())) { + listener.visitErrorNode(node); + } else if (node instanceof TerminalNode) { + listener.visitTerminal(node); + } }); } }