forked from jasder/antlr
Fix ParseTreePatternMatcher.compile allowing invalid syntax
This commit is contained in:
parent
bf63d5afb9
commit
67b6415659
|
@ -31,6 +31,7 @@
|
||||||
package org.antlr.v4.runtime.tree.pattern;
|
package org.antlr.v4.runtime.tree.pattern;
|
||||||
|
|
||||||
import org.antlr.v4.runtime.ANTLRInputStream;
|
import org.antlr.v4.runtime.ANTLRInputStream;
|
||||||
|
import org.antlr.v4.runtime.BailErrorStrategy;
|
||||||
import org.antlr.v4.runtime.CommonTokenStream;
|
import org.antlr.v4.runtime.CommonTokenStream;
|
||||||
import org.antlr.v4.runtime.Lexer;
|
import org.antlr.v4.runtime.Lexer;
|
||||||
import org.antlr.v4.runtime.ListTokenSource;
|
import org.antlr.v4.runtime.ListTokenSource;
|
||||||
|
@ -43,6 +44,7 @@ import org.antlr.v4.runtime.atn.ATN;
|
||||||
import org.antlr.v4.runtime.misc.MultiMap;
|
import org.antlr.v4.runtime.misc.MultiMap;
|
||||||
import org.antlr.v4.runtime.misc.NotNull;
|
import org.antlr.v4.runtime.misc.NotNull;
|
||||||
import org.antlr.v4.runtime.misc.Nullable;
|
import org.antlr.v4.runtime.misc.Nullable;
|
||||||
|
import org.antlr.v4.runtime.misc.ParseCancellationException;
|
||||||
import org.antlr.v4.runtime.tree.ParseTree;
|
import org.antlr.v4.runtime.tree.ParseTree;
|
||||||
import org.antlr.v4.runtime.tree.RuleNode;
|
import org.antlr.v4.runtime.tree.RuleNode;
|
||||||
import org.antlr.v4.runtime.tree.TerminalNode;
|
import org.antlr.v4.runtime.tree.TerminalNode;
|
||||||
|
@ -225,9 +227,13 @@ public class ParseTreePatternMatcher {
|
||||||
|
|
||||||
ParseTree tree = null;
|
ParseTree tree = null;
|
||||||
try {
|
try {
|
||||||
|
parserInterp.setErrorHandler(new BailErrorStrategy());
|
||||||
tree = parserInterp.parse(patternRuleIndex);
|
tree = parserInterp.parse(patternRuleIndex);
|
||||||
// System.out.println("pattern tree = "+tree.toStringTree(parserInterp));
|
// System.out.println("pattern tree = "+tree.toStringTree(parserInterp));
|
||||||
}
|
}
|
||||||
|
catch (ParseCancellationException e) {
|
||||||
|
throw (RecognitionException)e.getCause();
|
||||||
|
}
|
||||||
catch (RecognitionException re) {
|
catch (RecognitionException re) {
|
||||||
throw re;
|
throw re;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue