public ReadOnlyDictionary<string, string> GetDirectiveAttributes(ParseTreeNode directiveNode) { var dict = new Dictionary<string, string>(Comparer); var attrlist = directiveNode.FindChildNode(AttributeList); foreach (var attr in attrlist.ChildNodes) { var attrName = string.Empty; var attrValue = string.Empty; foreach (var n in attr.ChildNodes) { if (n.Term == AttributeName) { attrName = Convert.ToString(n.Token.ValueString); } else { if (n.Term == AttributeValue) { attrValue = Convert.ToString(n.Token.ValueString); } } } dict.Add(attrName, attrValue); } return new ReadOnlyDictionary<string, string>(dict); }