public String toString() {if ( isEmpty() ) return "[]";StringBuilder buf = new StringBuilder();buf.append("[");for (int i=0; i<returnStates.length; i++) {if ( i>0 ) buf.append(", ");if ( returnStates[i]==EMPTY_RETURN_STATE ) {buf.append("$");continue;}buf.append(returnStates[i]);if ( parents[i]!=null ) {buf.append(' ');buf.append(parents[i].toString());}else {buf.append("null");}}buf.append("]");return buf.toString();}

public override String ToString(){if (IsEmpty)return "[]";StringBuilder buf = new StringBuilder();buf.Append("[");for (int i = 0; i < returnStates.Length; i++){if (i > 0) buf.Append(", ");if (returnStates[i] == EMPTY_RETURN_STATE){buf.Append("$");continue;}buf.Append(returnStates[i]);if (parents[i] != null){buf.Append(' ');buf.Append(parents[i].ToString());}else {buf.Append("null");}}buf.Append("]");return buf.ToString();}
