Remove unnecessary method ParserInterpreter.predictATN
This commit is contained in:
parent
88e836c4d9
commit
15577fd21f
|
@ -101,14 +101,6 @@ public class ParserInterpreter {
|
||||||
parser.sharedContextCache);
|
parser.sharedContextCache);
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized int predictATN(@NotNull DFA dfa, @NotNull TokenStream input,
|
|
||||||
@Nullable ParserRuleContext outerContext,
|
|
||||||
boolean useContext)
|
|
||||||
{
|
|
||||||
// sync to ensure this entry doesn't race for dfa access
|
|
||||||
return atnSimulator.predictATN(dfa, input, outerContext);
|
|
||||||
}
|
|
||||||
|
|
||||||
public int adaptivePredict(@NotNull TokenStream input, int decision,
|
public int adaptivePredict(@NotNull TokenStream input, int decision,
|
||||||
@Nullable ParserRuleContext outerContext)
|
@Nullable ParserRuleContext outerContext)
|
||||||
{
|
{
|
||||||
|
|
|
@ -489,11 +489,7 @@ public class TestATNParserPrediction extends BaseTest {
|
||||||
// ParserATNSimulator interp = new ParserATNSimulator(atn);
|
// ParserATNSimulator interp = new ParserATNSimulator(atn);
|
||||||
TokenStream input = new IntTokenStream(types);
|
TokenStream input = new IntTokenStream(types);
|
||||||
ParserInterpreter interp = new ParserInterpreter(g, input);
|
ParserInterpreter interp = new ParserInterpreter(g, input);
|
||||||
DecisionState startState = atn.decisionToState.get(decision);
|
int alt = interp.adaptivePredict(input, decision, ParserRuleContext.EMPTY);
|
||||||
DFA dfa = new DFA(startState, decision);
|
|
||||||
int alt = interp.predictATN(dfa, input, ParserRuleContext.EMPTY, false);
|
|
||||||
|
|
||||||
System.out.println(dot.getDOT(dfa, false));
|
|
||||||
|
|
||||||
assertEquals(expectedAlt, alt);
|
assertEquals(expectedAlt, alt);
|
||||||
|
|
||||||
|
@ -507,44 +503,6 @@ public class TestATNParserPrediction extends BaseTest {
|
||||||
assertEquals(expectedAlt, alt);
|
assertEquals(expectedAlt, alt);
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized DFA getDFA(LexerGrammar lg, Grammar g, String ruleName,
|
|
||||||
String inputString, ParserRuleContext ctx)
|
|
||||||
{
|
|
||||||
// sync to ensure multiple tests don't race on dfa access
|
|
||||||
Tool.internalOption_ShowATNConfigsInDFA = true;
|
|
||||||
ATN lexatn = createATN(lg, true);
|
|
||||||
LexerATNSimulator lexInterp = new LexerATNSimulator(lexatn,null,null);
|
|
||||||
|
|
||||||
semanticProcess(lg);
|
|
||||||
g.importVocab(lg);
|
|
||||||
semanticProcess(g);
|
|
||||||
|
|
||||||
ParserATNFactory f = new ParserATNFactory(g);
|
|
||||||
ATN atn = f.createATN();
|
|
||||||
|
|
||||||
// DOTGenerator dot = new DOTGenerator(g);
|
|
||||||
// System.out.println(dot.getDOT(atn.ruleToStartState.get(g.getRule("a"))));
|
|
||||||
// System.out.println(dot.getDOT(atn.ruleToStartState.get(g.getRule("b"))));
|
|
||||||
// System.out.println(dot.getDOT(atn.ruleToStartState.get(g.getRule("e"))));
|
|
||||||
|
|
||||||
ParserATNSimulator interp =
|
|
||||||
new ParserATNSimulator(atn, new DFA[atn.getNumberOfDecisions()],null);
|
|
||||||
IntegerList types = getTokenTypesViaATN(inputString, lexInterp);
|
|
||||||
System.out.println(types);
|
|
||||||
TokenStream input = new IntTokenStream(types);
|
|
||||||
try {
|
|
||||||
DecisionState startState = atn.decisionToState.get(0);
|
|
||||||
DFA dfa = new DFA(startState);
|
|
||||||
// Rule r = g.getRule(ruleName);
|
|
||||||
//ATNState startState = atn.ruleToStartState.get(r);
|
|
||||||
interp.predictATN(dfa, input, ctx);
|
|
||||||
}
|
|
||||||
catch (NoViableAltException nvae) {
|
|
||||||
nvae.printStackTrace(System.err);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void checkDFAConstruction(LexerGrammar lg, Grammar g, int decision,
|
public void checkDFAConstruction(LexerGrammar lg, Grammar g, int decision,
|
||||||
String[] inputString, String[] dfaString)
|
String[] inputString, String[] dfaString)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue