public static SwitchStatement Read (XmlReader reader) { var result = new SwitchStatement (); if (reader.MoveToFirstAttribute ()) { do { result.SetAttribute (reader.LocalName, reader.Value); } while (reader.MoveToNextAttribute ()); } XmlReadHelper.ReadList (reader, XmlTag, delegate () { switch (reader.LocalName) { case "Case": result.CaseSections.Add (CaseStatement.Read (reader)); return true; case "Default": result.Children = Node.ReadNodeList (reader, "Default"); return true; } return false; }); return result; }