public void reportNondeterminism(DFAState d, Set<Integer> nondeterministicAlts) { altsWithProblem.addAll(nondeterministicAlts); // track overall list statesWithSyntacticallyAmbiguousAltsSet.add(d); dfa.nfa.grammar.setOfNondeterministicDecisionNumbers.add( Utils.integer(dfa.getDecisionNumber()) ); }
public void reportNondeterminism(DFAState d, Set<Integer> nondeterministicAlts) { altsWithProblem.addAll(nondeterministicAlts); // track overall list statesWithSyntacticallyAmbiguousAltsSet.add(d); dfa.nfa.grammar.setOfNondeterministicDecisionNumbers.add( Utils.integer(dfa.getDecisionNumber()) ); }
public void reportNondeterminism(DFAState d, Set<Integer> nondeterministicAlts) { altsWithProblem.addAll(nondeterministicAlts); // track overall list statesWithSyntacticallyAmbiguousAltsSet.add(d); dfa.nfa.grammar.setOfNondeterministicDecisionNumbers.add( Utils.integer(dfa.getDecisionNumber()) ); }
public void reportNondeterminism(DFAState d, Set<Integer> nondeterministicAlts) { altsWithProblem.addAll(nondeterministicAlts); // track overall list statesWithSyntacticallyAmbiguousAltsSet.add(d); dfa.nfa.grammar.setOfNondeterministicDecisionNumbers.add( Utils.integer(dfa.getDecisionNumber()) ); }
public void reportNondeterminismResolvedWithSemanticPredicate(DFAState d) { // First, prevent a recursion warning on this state due to // pred resolution if ( d.abortedDueToRecursionOverflow ) { d.dfa.probe.removeRecursiveOverflowState(d); } statesResolvedWithSemanticPredicatesSet.add(d); //System.out.println("resolved with pred: "+d); dfa.nfa.grammar.setOfNondeterministicDecisionNumbersResolvedWithPredicates.add( Utils.integer(dfa.getDecisionNumber()) ); }
private void discover(Grammar g, Set<Integer> lineIndexes, Set<Integer> usesSemPreds, Set<Integer> usesSynPreds) { if(g == null) return; if(g.decisionsWhoseDFAsUsesSemPreds != null) { for(DFA dfa : g.decisionsWhoseDFAsUsesSemPreds) { usesSemPreds.add(dfa.getDecisionNumber()); } } if(g.decisionsWhoseDFAsUsesSynPreds != null) { for(DFA dfa : g.decisionsWhoseDFAsUsesSynPreds) { usesSynPreds.add(dfa.getDecisionNumber()); } } // Get the position information about each DFA decision for(Integer lineIndex : lineIndexes) { addPositions(lineIndex, g.getLookaheadDFAColumnsForLineInFile(lineIndex)); } }
public void reportNondeterminismResolvedWithSemanticPredicate(DFAState d) { // First, prevent a recursion warning on this state due to // pred resolution if ( d.abortedDueToRecursionOverflow ) { d.dfa.probe.removeRecursiveOverflowState(d); } statesResolvedWithSemanticPredicatesSet.add(d); //System.out.println("resolved with pred: "+d); dfa.nfa.grammar.setOfNondeterministicDecisionNumbersResolvedWithPredicates.add( Utils.integer(dfa.getDecisionNumber()) ); }
public void reportNondeterminismResolvedWithSemanticPredicate(DFAState d) { // First, prevent a recursion warning on this state due to // pred resolution if ( d.abortedDueToRecursionOverflow ) { d.dfa.probe.removeRecursiveOverflowState(d); } statesResolvedWithSemanticPredicatesSet.add(d); //System.out.println("resolved with pred: "+d); dfa.nfa.grammar.setOfNondeterministicDecisionNumbersResolvedWithPredicates.add( Utils.integer(dfa.getDecisionNumber()) ); }
public void reportNondeterminismResolvedWithSemanticPredicate(DFAState d) { // First, prevent a recursion warning on this state due to // pred resolution if ( d.abortedDueToRecursionOverflow ) { d.dfa.probe.removeRecursiveOverflowState(d); } statesResolvedWithSemanticPredicatesSet.add(d); //System.out.println("resolved with pred: "+d); dfa.nfa.grammar.setOfNondeterministicDecisionNumbersResolvedWithPredicates.add( Utils.integer(dfa.getDecisionNumber()) ); }
if(dfa.getDecisionNumber() == s.getDecisionNumber()) continue; String title = "DFA decision "+dfa.getDecisionNumber(); String info = ""; if(usesSemPreds.contains(dfa.getDecisionNumber())) { info += "uses semantic predicate"; c = new Color(255, 220, 0); } else if(usesSynPreds.contains(dfa.getDecisionNumber())) { info += "uses syntactic predicate"; c = new Color(255, 220, 0);
@Override public String getDOTString() throws Exception { DecisionDFAEngine engine = window.decisionDFAEngine; Grammar g; int adjustedColumn = getDecisionColumn(g = engine.getDiscoveredParserGrammar()); if(adjustedColumn == -1) adjustedColumn = getDecisionColumn(g = engine.getDiscoveredLexerGrammar()); if(adjustedColumn == -1) throw new Exception("No decision in the current line"); CodeGenerator generator = new CodeGenerator(new Tool(), g, (String) g.getOption("language")); DFA dfa = g.getLookaheadDFAFromPositionInFile(line, adjustedColumn); decisionNumber = dfa.getDecisionNumber(); DOTGenerator dg = new DOTGenerator(g); g.setCodeGenerator(generator); dg.setArrowheadType("none"); dg.setRankdir("LR"); // Left-to-right return dg.getDOT( dfa.startState ); }
Utils.integer(dfa.getDecisionNumber()));
Utils.integer(dfa.getDecisionNumber()));
Utils.integer(dfa.getDecisionNumber()));
Utils.integer(dfa.getDecisionNumber()));
NoViableAltException nvae = new NoViableAltException(description, dfa.getDecisionNumber(), s.stateNumber, input);
NoViableAltException nvae = new NoViableAltException(description, dfa.getDecisionNumber(), s.stateNumber, input);
decision = generator.genLookaheadDecision(recognizerST,dfa); retval.code.add("decision", decision); retval.code.add("decisionNumber", dfa.getDecisionNumber()); retval.code.add("maxK",dfa.getMaxLookaheadDepth()); retval.code.add("maxAlt",dfa.getNumberOfAlts());
decision = generator.genLookaheadDecision(recognizerST,dfa); retval.code.add("decision", decision); retval.code.add("decisionNumber", dfa.getDecisionNumber()); retval.code.add("maxK",dfa.getMaxLookaheadDepth()); retval.code.add("maxAlt",dfa.getNumberOfAlts());
decision = generator.genLookaheadDecision(recognizerST,dfa); code.setAttribute("decision", decision); code.setAttribute("decisionNumber", dfa.getDecisionNumber()); code.setAttribute("maxK",dfa.getMaxLookaheadDepth()); code.setAttribute("maxAlt",dfa.getNumberOfAlts());