private void findLeaves(RegExp exp, Kind kind, List<Automaton> list, Map<String,Automaton> automata, AutomatonProvider automaton_provider, int maxDeterminizedStates) { if (exp.kind == kind) { findLeaves(exp.exp1, kind, list, automata, automaton_provider, maxDeterminizedStates); findLeaves(exp.exp2, kind, list, automata, automaton_provider, maxDeterminizedStates); } else { list.add(exp.toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates)); } }
private Automaton toAutomaton(Map<String,Automaton> automata, AutomatonProvider automaton_provider, int maxDeterminizedStates) throws IllegalArgumentException, TooComplexToDeterminizeException { try { return toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates); } catch (TooComplexToDeterminizeException e) { throw new TooComplexToDeterminizeException(this, e); } }
case REGEXP_INTERSECTION: a = Operations.intersection( exp1.toAutomatonInternal( automata, automaton_provider, maxDeterminizedStates), exp2.toAutomatonInternal( automata, automaton_provider, maxDeterminizedStates)); a = MinimizationOperations.minimize(a, maxDeterminizedStates); break; case REGEXP_OPTIONAL: a = Operations.optional(exp1.toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates)); a = MinimizationOperations.minimize(a, maxDeterminizedStates); break; case REGEXP_REPEAT: a = Operations.repeat(exp1.toAutomatonInternal( automata, automaton_provider, maxDeterminizedStates)); a = MinimizationOperations.minimize(a, maxDeterminizedStates); break; case REGEXP_REPEAT_MIN: a = exp1.toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates); int minNumStates = (a.getNumStates() - 1) * min; if (minNumStates > maxDeterminizedStates) { break; case REGEXP_REPEAT_MINMAX: a = exp1.toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates); int minMaxNumStates = (a.getNumStates() - 1) * max; if (minMaxNumStates > maxDeterminizedStates) {
private void findLeaves(RegExp exp, Kind kind, List<Automaton> list, Map<String,Automaton> automata, AutomatonProvider automaton_provider, int maxDeterminizedStates) { if (exp.kind == kind) { findLeaves(exp.exp1, kind, list, automata, automaton_provider, maxDeterminizedStates); findLeaves(exp.exp2, kind, list, automata, automaton_provider, maxDeterminizedStates); } else { list.add(exp.toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates)); } }
private void findLeaves(RegExp exp, Kind kind, List<Automaton> list, Map<String,Automaton> automata, AutomatonProvider automaton_provider, int maxDeterminizedStates) { if (exp.kind == kind) { findLeaves(exp.exp1, kind, list, automata, automaton_provider, maxDeterminizedStates); findLeaves(exp.exp2, kind, list, automata, automaton_provider, maxDeterminizedStates); } else { list.add(exp.toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates)); } }
private Automaton toAutomaton(Map<String,Automaton> automata, AutomatonProvider automaton_provider, int maxDeterminizedStates) throws IllegalArgumentException, TooComplexToDeterminizeException { try { return toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates); } catch (TooComplexToDeterminizeException e) { throw new TooComplexToDeterminizeException(this, e); } }
private void findLeaves(RegExp exp, Kind kind, List<Automaton> list, Map<String,Automaton> automata, AutomatonProvider automaton_provider, int maxDeterminizedStates) { if (exp.kind == kind) { findLeaves(exp.exp1, kind, list, automata, automaton_provider, maxDeterminizedStates); findLeaves(exp.exp2, kind, list, automata, automaton_provider, maxDeterminizedStates); } else { list.add(exp.toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates)); } }
private Automaton toAutomaton(Map<String,Automaton> automata, AutomatonProvider automaton_provider, int maxDeterminizedStates) throws IllegalArgumentException, TooComplexToDeterminizeException { try { return toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates); } catch (TooComplexToDeterminizeException e) { throw new TooComplexToDeterminizeException(this, e); } }
private Automaton toAutomaton(Map<String,Automaton> automata, AutomatonProvider automaton_provider, int maxDeterminizedStates) throws IllegalArgumentException, TooComplexToDeterminizeException { try { return toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates); } catch (TooComplexToDeterminizeException e) { throw new TooComplexToDeterminizeException(this, e); } }
case REGEXP_INTERSECTION: a = Operations.intersection( exp1.toAutomatonInternal( automata, automaton_provider, maxDeterminizedStates), exp2.toAutomatonInternal( automata, automaton_provider, maxDeterminizedStates)); a = MinimizationOperations.minimize(a, maxDeterminizedStates); break; case REGEXP_OPTIONAL: a = Operations.optional(exp1.toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates)); a = MinimizationOperations.minimize(a, maxDeterminizedStates); break; case REGEXP_REPEAT: a = Operations.repeat(exp1.toAutomatonInternal( automata, automaton_provider, maxDeterminizedStates)); a = MinimizationOperations.minimize(a, maxDeterminizedStates); case REGEXP_REPEAT_MIN: a = Operations.repeat( exp1.toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates), min); case REGEXP_REPEAT_MINMAX: a = Operations.repeat( exp1.toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates), min,
case REGEXP_INTERSECTION: a = Operations.intersection( exp1.toAutomatonInternal( automata, automaton_provider, maxDeterminizedStates), exp2.toAutomatonInternal( automata, automaton_provider, maxDeterminizedStates)); a = MinimizationOperations.minimize(a, maxDeterminizedStates); break; case REGEXP_OPTIONAL: a = Operations.optional(exp1.toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates)); a = MinimizationOperations.minimize(a, maxDeterminizedStates); break; case REGEXP_REPEAT: a = Operations.repeat(exp1.toAutomatonInternal( automata, automaton_provider, maxDeterminizedStates)); a = MinimizationOperations.minimize(a, maxDeterminizedStates); case REGEXP_REPEAT_MIN: a = Operations.repeat( exp1.toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates), min); case REGEXP_REPEAT_MINMAX: a = Operations.repeat( exp1.toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates), min,
case REGEXP_INTERSECTION: a = Operations.intersection( exp1.toAutomatonInternal( automata, automaton_provider, maxDeterminizedStates), exp2.toAutomatonInternal( automata, automaton_provider, maxDeterminizedStates)); a = MinimizationOperations.minimize(a, maxDeterminizedStates); break; case REGEXP_OPTIONAL: a = Operations.optional(exp1.toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates)); a = MinimizationOperations.minimize(a, maxDeterminizedStates); break; case REGEXP_REPEAT: a = Operations.repeat(exp1.toAutomatonInternal( automata, automaton_provider, maxDeterminizedStates)); a = MinimizationOperations.minimize(a, maxDeterminizedStates); break; case REGEXP_REPEAT_MIN: a = exp1.toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates); int minNumStates = (a.getNumStates() - 1) * min; if (minNumStates > maxDeterminizedStates) { break; case REGEXP_REPEAT_MINMAX: a = exp1.toAutomatonInternal(automata, automaton_provider, maxDeterminizedStates); int minMaxNumStates = (a.getNumStates() - 1) * max; if (minMaxNumStates > maxDeterminizedStates) {