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;
		}