/// <summary> /// Merges the given enum into the enum list. If an enum of the same name exists, /// it merges their respective constants. /// </summary> /// <param name="enums"></param> /// <param name="t"></param> internal static void Merge(DelegateCollection delegates, Delegate t) { if (!delegates.ContainsKey(t.Name)) { delegates.Add(t.Name, t); } }
private DelegateCollection ReadDelegates(XPathNavigator specs) { DelegateCollection delegates = new DelegateCollection(); foreach (XPathNavigator node in specs.SelectChildren("function", String.Empty)) { var name = node.GetAttribute("name", String.Empty); // Check whether we are adding to an existing delegate or creating a new one. Delegate d = null; if (delegates.ContainsKey(name)) { d = delegates[name]; } else { d = new Delegate(); d.Name = name; d.Version = node.GetAttribute("version", String.Empty); d.Category = node.GetAttribute("category", String.Empty); d.DeprecatedVersion = node.GetAttribute("deprecated", String.Empty); d.Deprecated = !String.IsNullOrEmpty(d.DeprecatedVersion); d.Obsolete = node.GetAttribute("obsolete", String.Empty); } foreach (XPathNavigator param in node.SelectChildren(XPathNodeType.Element)) { switch (param.Name) { case "returns": d.ReturnType.CurrentType = param.GetAttribute("type", String.Empty); break; case "param": Parameter p = new Parameter(); p.CurrentType = param.GetAttribute("type", String.Empty); p.Name = param.GetAttribute("name", String.Empty); string element_count = param.GetAttribute("elementcount", String.Empty); if (String.IsNullOrEmpty(element_count)) { element_count = param.GetAttribute("count", String.Empty); } if (!String.IsNullOrEmpty(element_count)) { p.ElementCount = Int32.Parse(element_count); } p.Flow = Parameter.GetFlowDirection(param.GetAttribute("flow", String.Empty)); d.Parameters.Add(p); break; } } delegates.Add(d); } return(delegates); }
private DelegateCollection ReadDelegates(XPathNavigator specs) { DelegateCollection delegates = new DelegateCollection(); foreach (XPathNavigator node in specs.SelectChildren("function", String.Empty)) { var name = node.GetAttribute("name", String.Empty); // Check whether we are adding to an existing delegate or creating a new one. Delegate d = null; if (delegates.ContainsKey(name)) { d = delegates[name]; } else { d = new Delegate(); d.Name = name; d.Version = node.GetAttribute("version", String.Empty); d.Category = node.GetAttribute("category", String.Empty); d.DeprecatedVersion = node.GetAttribute("deprecated", String.Empty); d.Deprecated = !String.IsNullOrEmpty(d.DeprecatedVersion); d.Obsolete = node.GetAttribute("obsolete", String.Empty); } foreach (XPathNavigator param in node.SelectChildren(XPathNodeType.Element)) { switch (param.Name) { case "returns": d.ReturnType.CurrentType = param.GetAttribute("type", String.Empty); break; case "param": Parameter p = new Parameter(); p.CurrentType = param.GetAttribute("type", String.Empty); p.Name = param.GetAttribute("name", String.Empty); string element_count = param.GetAttribute("elementcount", String.Empty); if (String.IsNullOrEmpty(element_count)) element_count = param.GetAttribute("count", String.Empty); if (!String.IsNullOrEmpty(element_count)) p.ElementCount = Int32.Parse(element_count); p.Flow = Parameter.GetFlowDirection(param.GetAttribute("flow", String.Empty)); d.Parameters.Add(p); break; } } delegates.Add(d); } return delegates; }
/// <summary> /// Merges the given enum into the enum list. If an enum of the same name exists, /// it merges their respective constants. /// </summary> /// <param name="enums"></param> /// <param name="t"></param> internal static void Merge(DelegateCollection delegates, Delegate t) { if (!delegates.ContainsKey(t.Name)) { delegates.Add(t.Name, t); } }
public override DelegateCollection ReadDelegates(StreamReader specFile) { DelegateCollection delegates = new DelegateCollection(); XPathDocument specs = new XPathDocument(specFile); XPathDocument overrides = new XPathDocument(new StreamReader(Path.Combine(Settings.InputPath, functionOverridesFile))); foreach (XPathNavigator nav in new XPathNavigator[] { specs.CreateNavigator().SelectSingleNode("/signatures"), overrides.CreateNavigator().SelectSingleNode("/overrides/add") }) { if (nav != null) { foreach (XPathNavigator node in nav.SelectChildren("function", String.Empty)) { var name = node.GetAttribute("name", String.Empty); // Check whether we are adding to an existing delegate or creating a new one. Delegate d = null; if (delegates.ContainsKey(name)) { d = delegates[name]; } else { d = new Delegate(); d.Name = name; d.Version = node.GetAttribute("version", String.Empty); d.Category = node.GetAttribute("category", String.Empty); } foreach (XPathNavigator param in node.SelectChildren(XPathNodeType.Element)) { switch (param.Name) { case "returns": d.ReturnType.CurrentType = param.GetAttribute("type", String.Empty); break; case "param": Parameter p = new Parameter(); p.CurrentType = param.GetAttribute("type", String.Empty); p.Name = param.GetAttribute("name", String.Empty); string element_count = param.GetAttribute("elementcount", String.Empty); if (!String.IsNullOrEmpty(element_count)) p.ElementCount = Int32.Parse(element_count); p.Flow = Parameter.GetFlowDirection(param.GetAttribute("flow", String.Empty)); d.Parameters.Add(p); break; } } d.Translate(overrides); delegates.Add(d); } } } return delegates; }
public override DelegateCollection ReadDelegates(StreamReader specFile) { DelegateCollection delegates = new DelegateCollection(); XPathDocument specs = new XPathDocument(specFile); XPathDocument overrides = new XPathDocument(new StreamReader(Path.Combine(Settings.InputPath, functionOverridesFile))); foreach (XPathNavigator nav in new XPathNavigator[] { specs.CreateNavigator().SelectSingleNode("/signatures"), overrides.CreateNavigator().SelectSingleNode("/overrides/add") }) { if (nav != null) { foreach (XPathNavigator node in nav.SelectChildren("function", String.Empty)) { var name = node.GetAttribute("name", String.Empty); // Check whether we are adding to an existing delegate or creating a new one. Delegate d = null; if (delegates.ContainsKey(name)) { d = delegates[name]; } else { d = new Delegate(); d.Name = name; d.Version = node.GetAttribute("version", String.Empty); d.Category = node.GetAttribute("category", String.Empty); } foreach (XPathNavigator param in node.SelectChildren(XPathNodeType.Element)) { switch (param.Name) { case "returns": d.ReturnType.CurrentType = param.GetAttribute("type", String.Empty); break; case "param": Parameter p = new Parameter(); p.CurrentType = param.GetAttribute("type", String.Empty); p.Name = param.GetAttribute("name", String.Empty); string element_count = param.GetAttribute("elementcount", String.Empty); if (!String.IsNullOrEmpty(element_count)) { p.ElementCount = Int32.Parse(element_count); } p.Flow = Parameter.GetFlowDirection(param.GetAttribute("flow", String.Empty)); d.Parameters.Add(p); break; } } d.Translate(overrides); delegates.Add(d); } } } return(delegates); }