@Override public String toString() { FASerializer serializer = new FASerializer(nfa.grammar); if ( startState==null ) { return ""; } return serializer.serialize(startState, false); }
if ( renumber ) { stateNumberTranslator = new HashMap(); walkFANormalizingStateNumbers(s); walkSerializingFA(lines, s); String s0 = getStateString(0, s); lines.add(s0+"\n");
String stateStr = getStateString(normalizedStateNumber, s); normalizedTargetStateNumber = normalizedTargetStateNumberI; buf.append(getStateString(normalizedTargetStateNumber, edge.target)); buf.append("\n"); lines.add(buf.toString()); walkSerializingFA(lines, edge.target); walkSerializingFA(lines, ((RuleClosureTransition) edge).followState);
public String serialize(State s) { if ( s==null ) { return "<no automaton>"; } return serialize(s, true); }
/** In stateNumberTranslator, get a map from State to new, normalized * state number. Used by walkSerializingFA to make sure any two * identical state machines will serialize the same way. */ protected void walkFANormalizingStateNumbers(State s) { if ( s==null ) { ErrorManager.internalError("null state s"); return; } if ( stateNumberTranslator.get(s)!=null ) { return; // already did this state } // assign a new state number for this node if there isn't one stateNumberTranslator.put(s, Utils.integer(stateCounter)); stateCounter++; // visit nodes pointed to by each transition; for (int i = 0; i < s.getNumberOfTransitions(); i++) { Transition edge = s.transition(i); walkFANormalizingStateNumbers(edge.target); // keep walkin' // if this transition is a rule reference, the node "following" this state // will not be found and appear to be not in graph. Must explicitly jump // to it, but don't "draw" an edge. if ( edge instanceof RuleClosureTransition ) { walkFANormalizingStateNumbers(((RuleClosureTransition) edge).followState); } } }
if ( renumber ) { stateNumberTranslator = new HashMap(); walkFANormalizingStateNumbers(s); walkSerializingFA(lines, s); String s0 = getStateString(0, s); lines.add(s0+"\n");
String stateStr = getStateString(normalizedStateNumber, s); normalizedTargetStateNumber = normalizedTargetStateNumberI; buf.append(getStateString(normalizedTargetStateNumber, edge.target)); buf.append("\n"); lines.add(buf.toString()); walkSerializingFA(lines, edge.target); walkSerializingFA(lines, ((RuleClosureTransition) edge).followState);
public String serialize(State s) { if ( s==null ) { return "<no automaton>"; } return serialize(s, true); }
/** In stateNumberTranslator, get a map from State to new, normalized * state number. Used by walkSerializingFA to make sure any two * identical state machines will serialize the same way. */ protected void walkFANormalizingStateNumbers(State s) { if ( s==null ) { ErrorManager.internalError("null state s"); return; } if ( stateNumberTranslator.get(s)!=null ) { return; // already did this state } // assign a new state number for this node if there isn't one stateNumberTranslator.put(s, Utils.integer(stateCounter)); stateCounter++; // visit nodes pointed to by each transition; for (int i = 0; i < s.getNumberOfTransitions(); i++) { Transition edge = (Transition) s.transition(i); walkFANormalizingStateNumbers(edge.target); // keep walkin' // if this transition is a rule reference, the node "following" this state // will not be found and appear to be not in graph. Must explicitly jump // to it, but don't "draw" an edge. if ( edge instanceof RuleClosureTransition ) { walkFANormalizingStateNumbers(((RuleClosureTransition) edge).followState); } } }
if ( renumber ) { stateNumberTranslator = new HashMap<State, Integer>(); walkFANormalizingStateNumbers(s); walkSerializingFA(lines, s); String s0 = getStateString(0, s); lines.add(s0+"\n");
@Override public String toString() { FASerializer serializer = new FASerializer(nfa.grammar); if ( startState==null ) { return ""; } return serializer.serialize(startState, false); }
String stateStr = getStateString(normalizedStateNumber, s); normalizedTargetStateNumber = normalizedTargetStateNumberI.intValue(); buf.append(getStateString(normalizedTargetStateNumber, edge.target)); buf.append("\n"); lines.add(buf.toString()); walkSerializingFA(lines, edge.target); walkSerializingFA(lines, ((RuleClosureTransition) edge).followState);
public String serialize(State s) { if ( s==null ) { return "<no automaton>"; } return serialize(s, true); }
/** In stateNumberTranslator, get a map from State to new, normalized * state number. Used by walkSerializingFA to make sure any two * identical state machines will serialize the same way. */ protected void walkFANormalizingStateNumbers(State s) { if ( s==null ) { ErrorManager.internalError("null state s"); return; } if ( stateNumberTranslator.get(s)!=null ) { return; // already did this state } // assign a new state number for this node if there isn't one stateNumberTranslator.put(s, Utils.integer(stateCounter)); stateCounter++; // visit nodes pointed to by each transition; for (int i = 0; i < s.getNumberOfTransitions(); i++) { Transition edge = s.transition(i); walkFANormalizingStateNumbers(edge.target); // keep walkin' // if this transition is a rule reference, the node "following" this state // will not be found and appear to be not in graph. Must explicitly jump // to it, but don't "draw" an edge. if ( edge instanceof RuleClosureTransition ) { walkFANormalizingStateNumbers(((RuleClosureTransition) edge).followState); } } }
if ( renumber ) { stateNumberTranslator = new HashMap<State, Integer>(); walkFANormalizingStateNumbers(s); walkSerializingFA(lines, s); String s0 = getStateString(0, s); lines.add(s0+"\n");
public String toString() { FASerializer serializer = new FASerializer(nfa.grammar); if ( startState==null ) { return ""; } return serializer.serialize(startState, false); }
String stateStr = getStateString(normalizedStateNumber, s); normalizedTargetStateNumber = normalizedTargetStateNumberI.intValue(); buf.append(getStateString(normalizedTargetStateNumber, edge.target)); buf.append("\n"); lines.add(buf.toString()); walkSerializingFA(lines, edge.target); walkSerializingFA(lines, ((RuleClosureTransition) edge).followState);
public String serialize(State s) { if ( s==null ) { return "<no automaton>"; } return serialize(s, true); }
/** In stateNumberTranslator, get a map from State to new, normalized * state number. Used by walkSerializingFA to make sure any two * identical state machines will serialize the same way. */ protected void walkFANormalizingStateNumbers(State s) { if ( s==null ) { ErrorManager.internalError("null state s"); return; } if ( stateNumberTranslator.get(s)!=null ) { return; // already did this state } // assign a new state number for this node if there isn't one stateNumberTranslator.put(s, Utils.integer(stateCounter)); stateCounter++; // visit nodes pointed to by each transition; for (int i = 0; i < s.getNumberOfTransitions(); i++) { Transition edge = (Transition) s.transition(i); walkFANormalizingStateNumbers(edge.target); // keep walkin' // if this transition is a rule reference, the node "following" this state // will not be found and appear to be not in graph. Must explicitly jump // to it, but don't "draw" an edge. if ( edge instanceof RuleClosureTransition ) { walkFANormalizingStateNumbers(((RuleClosureTransition) edge).followState); } } }
public String toString() { FASerializer serializer = new FASerializer(nfa.grammar); if ( startState==null ) { return ""; } return serializer.serialize(startState, false); }