public static void XmlMatches(Token token, Token stop, Token parent, XmlWriter xml) { while (token != null) { ReferentToken referent = token as ReferentToken; if (referent != null) { XmlMatch(referent, parent, xml); } if (token == stop) { break; } token = token.Next; } }
public static void XmlMatch(ReferentToken token, Token parent, XmlWriter xml) { Referent referent = token.GetReferent(); int start = token.BeginChar; int stop = token.EndChar + 1; int id = token.GetHashCode(); xml.WriteStartElement("match"); xml.WriteAttributeString("id", id.ToString()); if (parent != null) { id = parent.GetHashCode(); xml.WriteAttributeString("parent", id.ToString()); } id = referent.GetHashCode(); xml.WriteAttributeString("referent", id.ToString()); xml.WriteAttributeString("start", start.ToString()); xml.WriteAttributeString("stop", stop.ToString()); xml.WriteEndElement(); XmlMatches(token.BeginToken, token.EndToken, token, xml); }