diff --git a/runtime/Python2/src/antlr4/Parser.py b/runtime/Python2/src/antlr4/Parser.py index 97cf4924a..e70318dfc 100644 --- a/runtime/Python2/src/antlr4/Parser.py +++ b/runtime/Python2/src/antlr4/Parser.py @@ -328,7 +328,10 @@ class Parser (Recognizer): node = self._ctx.addTokenNode(o) if hasListener: for listener in self._parseListeners: - listener.visitTerminal(node) + if isinstance(node, ErrorNode): + listener.visitErrorNode(node) + elif isinstance(node, TerminalNode): + listener.visitTerminal(node) return o def addContextToParseTree(self): diff --git a/runtime/Python3/src/antlr4/Parser.py b/runtime/Python3/src/antlr4/Parser.py index e831b6415..bf63ea56c 100644 --- a/runtime/Python3/src/antlr4/Parser.py +++ b/runtime/Python3/src/antlr4/Parser.py @@ -335,7 +335,10 @@ class Parser (Recognizer): node = self._ctx.addTokenNode(o) if hasListener: for listener in self._parseListeners: - listener.visitTerminal(node) + if isinstance(node, ErrorNode): + listener.visitErrorNode(node) + elif isinstance(node, TerminalNode): + listener.visitTerminal(node) return o def addContextToParseTree(self):