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