コード例 #1
0
        private XmlElement CreateIParseableNode(XmlDocument doc, IParseable parseable)
        {
            ParseableElementAttribute metadata = parseable.GetType().GetCustomAttribute <ParseableElementAttribute>();
            XmlElement parseableElem           = doc.CreateElement(metadata.Name);

            foreach (PersistentProperty prop in parseable.Properties)
            {
                parseableElem.SetAttribute(prop.Name, prop.Getter());
            }
            foreach (IParseable child in parseable.Children)
            {
                parseableElem.AppendChild(CreateIParseableNode(doc, child));
            }
            return(parseableElem);
        }
コード例 #2
0
ファイル: GrammarWindow.cs プロジェクト: tedneward/katahdin
 private void AddNode(TreeIter parent, IParseable node)
 {
     if (node is ParseGraphNode)
     {
         AddNode(parent, (ParseGraphNode)node);
     }
     else if (node is Alt)
     {
         AddNode(parent, (Alt)node);
     }
     else
     {
         throw new Exception("Unsupported grammar node type " + node.GetType() + " in viewer");
     }
 }
コード例 #3
0
ファイル: GrammarWindow.cs プロジェクト: KevinKelley/katahdin
 private void AddNode(TreeIter parent, IParseable node)
 {
     if (node is ParseGraphNode)
         AddNode(parent, (ParseGraphNode) node);
     else if (node is Alt)
         AddNode(parent, (Alt) node);
     else
         throw new Exception("Unsupported grammar node type " + node.GetType() + " in viewer");
 }