public override string ToString() { string rv = Nonterminal.ToString() + " -> "; for (int i = 0; i < ProductionElements.Count; i++) { if (DotPos == i) { rv += " @"; } rv += " " + ProductionElements[i].ToString(); } if (DotPos >= ProductionElements.Count) { rv += " @"; } return(rv); }