///// <summary> ///// Must be invoked when the stored hash code may no longer be valid. ///// </summary> /* * void clearHashCode() { * hash_code = 0; * } */ /// <summary> /// Returns a string representation of this automaton. /// </summary> public override string ToString() { StringBuilder b = new StringBuilder(); if (IsSingleton) { b.Append("singleton: "); int length = singleton.CodePointCount(0, singleton.Length); int[] codepoints = new int[length]; for (int i = 0, j = 0, cp = 0; i < singleton.Length; i += Character.CharCount(cp)) { codepoints[j++] = cp = singleton.CodePointAt(i); } foreach (int c in codepoints) { Transition.AppendCharString(c, b); } b.Append("\n"); } else { State[] states = GetNumberedStates(); b.Append("initial state: ").Append(initial.number).Append("\n"); foreach (State s in states) { b.Append(s.ToString()); } } return(b.ToString()); }
private readonly int[] _classmap; // map from char number to class class /// <summary> /// Returns a string representation of this automaton. /// </summary> public override string ToString() { var b = new StringBuilder(); b.Append("initial state: ").Append(m_initial).Append("\n"); for (int i = 0; i < _size; i++) { b.Append("state " + i); if (m_accept[i]) { b.Append(" [accept]:\n"); } else { b.Append(" [reject]:\n"); } for (int j = 0; j < _points.Length; j++) { int k = m_transitions[i * _points.Length + j]; if (k != -1) { int min = _points[j]; int max; if (j + 1 < _points.Length) { max = (_points[j + 1] - 1); } else { max = _maxInterval; } b.Append(" "); Transition.AppendCharString(min, b); if (min != max) { b.Append("-"); Transition.AppendCharString(max, b); } b.Append(" -> ").Append(k).Append("\n"); } } } return(b.ToString()); }