/**
* Sets whether this is a precedence DFA. If the specified value differs
* from the current DFA configuration, the following actions are taken;
* otherwise no changes are made to the current DFA.
*
* <ul>
* <li>The {@link #states} map is cleared</li>
* <li>If {@code precedenceDfa} is {@code false}, the initial state
* {@link #s0} is set to {@code null}; otherwise, it is initialized to a new
* {@link DFAState} with an empty outgoing {@link DFAState#edges} array to
* store the start states for individual precedence values.</li>
* <li>The {@link #precedenceDfa} field is updated</li>
* </ul>
*
* @param precedenceDfa {@code true} if this is a precedence DFA; otherwise,
* {@code false}
*/
public final synchronized void setPrecedenceDfa(boolean precedenceDfa) {
if (this.precedenceDfa != precedenceDfa) {
this.states.clear();
if (precedenceDfa) {
DFAState precedenceState = new DFAState(new ATNConfigSet());
precedenceState.edges = new DFAState[0];
precedenceState.isAcceptState = false;
precedenceState.requiresFullContext = false;
this.s0 = precedenceState;
}
else {
this.s0 = null;
}
this.precedenceDfa = precedenceDfa;
}
}
java类org.antlr.v4.runtime.atn.ATNConfigSet的实例源码
DFA.java 文件源码
项目:Scratch-ApuC
阅读 34
收藏 0
点赞 0
评论 0
DiagnosticErrorListener.java 文件源码
项目:Scratch-ApuC
阅读 20
收藏 0
点赞 0
评论 0
@Override
public void reportAmbiguity(@NotNull Parser recognizer,
@NotNull DFA dfa,
int startIndex,
int stopIndex,
boolean exact,
@Nullable BitSet ambigAlts,
@NotNull ATNConfigSet configs)
{
if (exactOnly && !exact) {
return;
}
String format = "reportAmbiguity d=%s: ambigAlts=%s, input='%s'";
String decision = getDecisionDescription(recognizer, dfa);
BitSet conflictingAlts = getConflictingAlts(ambigAlts, configs);
String text = recognizer.getTokenStream().getText(Interval.of(startIndex, stopIndex));
String message = String.format(format, decision, conflictingAlts, text);
recognizer.notifyErrorListeners(message);
}
GraphParser.java 文件源码
项目:digraph-parser
阅读 19
收藏 0
点赞 0
评论 0
@Override
public void reportAmbiguity(@NotNull Parser recognizer,
@NotNull DFA dfa,
int startIndex,
int stopIndex,
boolean exact,
@Nullable BitSet ambigAlts,
@NotNull ATNConfigSet configs)
{
}
GraphParser.java 文件源码
项目:digraph-parser
阅读 19
收藏 0
点赞 0
评论 0
@Override
public void reportAttemptingFullContext(@NotNull Parser recognizer,
@NotNull DFA dfa,
int startIndex,
int stopIndex,
@Nullable BitSet conflictingAlts,
@NotNull ATNConfigSet configs)
{
}
GraphParser.java 文件源码
项目:digraph-parser
阅读 22
收藏 0
点赞 0
评论 0
@Override
public void reportContextSensitivity(@NotNull Parser recognizer,
@NotNull DFA dfa,
int startIndex,
int stopIndex,
int prediction,
@NotNull ATNConfigSet configs)
{
}
UserAgent.java 文件源码
项目:yauaa
阅读 28
收藏 0
点赞 0
评论 0
@Override
public void reportAmbiguity(
Parser recognizer,
DFA dfa,
int startIndex,
int stopIndex,
boolean exact,
BitSet ambigAlts,
ATNConfigSet configs) {
hasAmbiguity = true;
ambiguityCount++;
// allFields.put("__Ambiguity__",new AgentField("true"));
}
UserAgent.java 文件源码
项目:yauaa
阅读 22
收藏 0
点赞 0
评论 0
@Override
public void reportAttemptingFullContext(
Parser recognizer,
DFA dfa,
int startIndex,
int stopIndex,
BitSet conflictingAlts,
ATNConfigSet configs) {
}
UserAgent.java 文件源码
项目:yauaa
阅读 20
收藏 0
点赞 0
评论 0
@Override
public void reportContextSensitivity(
Parser recognizer,
DFA dfa,
int startIndex,
int stopIndex,
int prediction,
ATNConfigSet configs) {
}
MatcherAction.java 文件源码
项目:yauaa
阅读 28
收藏 0
点赞 0
评论 0
@Override
public void reportAmbiguity(
Parser recognizer,
DFA dfa,
int startIndex,
int stopIndex,
boolean exact,
BitSet ambigAlts,
ATNConfigSet configs) {
// Ignore this type of problem
}
MatcherAction.java 文件源码
项目:yauaa
阅读 18
收藏 0
点赞 0
评论 0
@Override
public void reportAttemptingFullContext(
Parser recognizer,
DFA dfa,
int startIndex,
int stopIndex,
BitSet conflictingAlts,
ATNConfigSet configs) {
// Ignore this type of problem
}
MatcherAction.java 文件源码
项目:yauaa
阅读 19
收藏 0
点赞 0
评论 0
@Override
public void reportContextSensitivity(
Parser recognizer,
DFA dfa,
int startIndex,
int stopIndex,
int prediction,
ATNConfigSet configs) {
// Ignore this type of problem
}
JSSDReader.java 文件源码
项目:libraries
阅读 24
收藏 0
点赞 0
评论 0
@Override
public void reportContextSensitivity(
final Parser recognizer,
final DFA dfa,
final int startIndex,
final int stopIndex,
final int prediction,
final ATNConfigSet configs) {
this.messages
.add("Context sensitivity violation, at " + startIndex + " until " + stopIndex + ", " + recognizer.getTokenStream().getText(Interval.of(startIndex, stopIndex))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
JSSDReader.java 文件源码
项目:libraries
阅读 25
收藏 0
点赞 0
评论 0
@Override
public void reportAmbiguity(
final Parser recognizer,
final DFA dfa,
final int startIndex,
final int stopIndex,
final boolean exact,
final BitSet ambigAlts,
final ATNConfigSet configs) {
this.messages
.add("ambiguity, at " + startIndex + " until " + stopIndex + ", " + recognizer.getTokenStream().getText(Interval.of(startIndex, stopIndex))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
InmemantlrErrorListener.java 文件源码
项目:inmemantlr
阅读 27
收藏 0
点赞 0
评论 0
@Override
public void reportAmbiguity(Parser recognizer,
DFA dfa,
int startIndex,
int stopIndex,
boolean exact,
BitSet ambigAlts,
ATNConfigSet configs)
{
log.put(Type.AMBIGUITY, "Ambiguity " + startIndex + " " + stopIndex);
}
InmemantlrErrorListener.java 文件源码
项目:inmemantlr
阅读 40
收藏 0
点赞 0
评论 0
@Override
public void reportAttemptingFullContext(Parser recognizer,
DFA dfa,
int startIndex,
int stopIndex,
BitSet conflictingAlts,
ATNConfigSet configs)
{
log.put(Type.FULL_CTX, "Attempting full Context " + startIndex + " " +
stopIndex);
}
InmemantlrErrorListener.java 文件源码
项目:inmemantlr
阅读 21
收藏 0
点赞 0
评论 0
@Override
public void reportContextSensitivity(Parser recognizer,
DFA dfa,
int startIndex,
int stopIndex,
int prediction,
ATNConfigSet configs)
{
log.put(Type.CTX_SSTV, "Context Sensitivity " + startIndex + " " +
stopIndex);
}
QueryErrorListener.java 文件源码
项目:antioch
阅读 22
收藏 0
点赞 0
评论 0
@Override
public void reportAmbiguity(Parser recognizer, DFA dfa, int startIndex, int stopIndex, boolean exact, BitSet ambigAlts, ATNConfigSet configs) {
LOG.warn("reportAmbiguity:");
LOG.warn("recognizer={}", recognizer);
LOG.warn("dfa={}", dfa);
LOG.warn("startIndex={}", startIndex);
LOG.warn("stopIndex={}", stopIndex);
LOG.warn("exact={}", exact);
LOG.warn("ambigAlts={}", ambigAlts);
LOG.warn("configs={}", configs);
parseErrors.add("ambiguity at (" + startIndex + ".." + stopIndex + ")");
}
QueryErrorListener.java 文件源码
项目:antioch
阅读 21
收藏 0
点赞 0
评论 0
@Override
public void reportContextSensitivity(Parser recognizer, DFA dfa, int startIndex, int stopIndex, int prediction, ATNConfigSet configs) {
LOG.warn("reportContextSensitivity:");
LOG.warn("recognizer={}", recognizer);
LOG.warn("dfa={}", dfa);
LOG.warn("startIndex={}", startIndex);
LOG.warn("stopIndex={}", stopIndex);
LOG.warn("prediction={}", prediction);
LOG.warn("configs={}", configs);
parseErrors.add("contextSensitivity at (" + startIndex + ".." + stopIndex + ")");
}
QueryErrorListener.java 文件源码
项目:antioch
阅读 23
收藏 0
点赞 0
评论 0
@Override
public void reportAttemptingFullContext(Parser recognizer, DFA dfa, int startIndex, int stopIndex, BitSet conflictingAlts, ATNConfigSet configs) {
LOG.warn("reportAttemptingFullContext:");
LOG.warn("recognizer={}", recognizer);
LOG.warn("dfa={}", dfa);
LOG.warn("startIndex={}", startIndex);
LOG.warn("stopIndex={}", stopIndex);
LOG.warn("conflictingAlts={}", conflictingAlts);
LOG.warn("configs={}", configs);
parseErrors.add("attemptingFullContext at (" + startIndex + ".." + stopIndex + ")");
}
DefaultErrorListener.java 文件源码
项目:srclib-basic
阅读 24
收藏 0
点赞 0
评论 0
@Override
public void reportAmbiguity(Parser parser,
DFA dfa,
int i,
int i1,
boolean b,
BitSet bitSet,
ATNConfigSet atnConfigSet) {
}
DefaultErrorListener.java 文件源码
项目:srclib-basic
阅读 35
收藏 0
点赞 0
评论 0
@Override
public void reportAttemptingFullContext(Parser parser,
DFA dfa,
int i,
int i1,
BitSet bitSet,
ATNConfigSet atnConfigSet) {
}
ADLErrorListener.java 文件源码
项目:archie
阅读 22
收藏 0
点赞 0
评论 0
@Override
public void reportAmbiguity(Parser recognizer, DFA dfa, int startIndex, int stopIndex, boolean exact, BitSet ambigAlts, ATNConfigSet configs) {
String input = recognizer.getInputStream().getText(new Interval(startIndex, stopIndex));
String warning = String.format("FULL AMBIGUITY: %d-%d, exact: %b, input: %s", startIndex, stopIndex, exact, input);
logger.debug(warning);
errors.addWarning(warning);
}
Parser.java 文件源码
项目:MiniJCompiler
阅读 25
收藏 0
点赞 0
评论 0
@Override
public void reportAttemptingFullContext(
org.antlr.v4.runtime.Parser recognizer, DFA dfa,
int startIndex, int stopIndex, BitSet conflictingAlts,
ATNConfigSet configs) {
errorOccurred = true;
}
Parser.java 文件源码
项目:MiniJCompiler
阅读 24
收藏 0
点赞 0
评论 0
@Override
public void reportContextSensitivity(
org.antlr.v4.runtime.Parser recognizer, DFA dfa,
int startIndex, int stopIndex, int prediction,
ATNConfigSet configs) {
errorOccurred = true;
}
PrintStreamErrorListener.java 文件源码
项目:antlr4-regressionTestRig
阅读 21
收藏 0
点赞 0
评论 0
/**
* {@inheritDoc}
* <p>
* We simply increment the number of Ambiguity warnings.
*/
@Override
public void reportAmbiguity(Parser recognizer,
DFA dfa,
int startIndex,
int stopIndex,
boolean exact,
BitSet ambigAlts,
ATNConfigSet configs) {
numAmbiguityWarnings++;
}
PrintStreamErrorListener.java 文件源码
项目:antlr4-regressionTestRig
阅读 18
收藏 0
点赞 0
评论 0
/**
* {@inheritDoc}
* <p>
* We simply increment the number of Strong Context warnings.
*/
@Override
public void reportAttemptingFullContext(Parser recognizer,
DFA dfa,
int startIndex,
int stopIndex,
BitSet conflictingAlts,
ATNConfigSet configs) {
numStrongContextWarnings++;
}
PrintStreamErrorListener.java 文件源码
项目:antlr4-regressionTestRig
阅读 18
收藏 0
点赞 0
评论 0
/**
* {@inheritDoc}
* <p>
* We simply increment the number of Weak Context warnings.
*/
@Override
public void reportContextSensitivity(Parser recognizer,
DFA dfa,
int startIndex,
int stopIndex,
int prediction,
ATNConfigSet configs) {
numWeakContextWarnings++;
}
StatisticsParserErrorListener.java 文件源码
项目:goworks
阅读 98
收藏 0
点赞 0
评论 0
@Override
public void reportAmbiguity(Parser recognizer, DFA dfa, int startIndex, int stopIndex, boolean exact, BitSet ambigAlts, ATNConfigSet configs) {
BitSet sllPredictions = getConflictingAlts(_sllConflict, _sllConfigs);
int sllPrediction = sllPredictions.nextSetBit(0);
BitSet llPredictions = getConflictingAlts(ambigAlts, configs);
int llPrediction = llPredictions.cardinality() == 0 ? ATN.INVALID_ALT_NUMBER : llPredictions.nextSetBit(0);
if (recognizer.getInterpreter() instanceof StatisticsParserATNSimulator) {
if (sllPrediction != llPrediction) {
((StatisticsParserATNSimulator)recognizer.getInterpreter()).nonSll[dfa.decision]++;
}
((StatisticsParserATNSimulator)recognizer.getInterpreter()).ambiguousResult[dfa.decision]++;
}
}
TreeCorrectionParserATNSimulator.java 文件源码
项目:goworks
阅读 19
收藏 0
点赞 0
评论 0
@Override
protected DFAState addDFAEdge(DFA dfa, DFAState fromState, int t, IntegerList contextTransitions, ATNConfigSet toConfigs, PredictionContextCache contextCache) {
if (!getSuppressedSet(startIndex).isNil()) {
DFAState to = addDFAState(dfa, toConfigs, contextCache);
return to;
}
return super.addDFAEdge(dfa, fromState, t, contextTransitions, toConfigs, contextCache);
}
AbstractCompletionParserATNSimulator.java 文件源码
项目:goworks
阅读 22
收藏 0
点赞 0
评论 0
@Override
protected DFAState createDFAState(DFA dfa, ATNConfigSet configs) {
int t = _input.LA(1);
if (t == CaretToken.CARET_TOKEN_TYPE && !_computingStartState) {
caretToken = (CaretToken)_input.LT(1);
throw noViableAlt(_input, _outerContext, configs, _startIndex);
}
return super.createDFAState(dfa, configs);
}