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);
        }
Beispiel #2
0
        public static PListScheme Load(XmlReader reader)
        {
            var result = new PListScheme();

            XmlReadHelper.ReadList(reader, "PListScheme", delegate() {
                switch (reader.LocalName)
                {
                case "Key":
                    var key = new Key()
                    {
                        Identifier  = reader.GetAttribute("name"),
                        Description = reader.GetAttribute("_description"),
                        Type        = reader.GetAttribute("type"),
                        ArrayType   = reader.GetAttribute("name")
                    };
                    XmlReadHelper.ReadList(reader, "Key", delegate() {
                        if (reader.LocalName == "Value")
                        {
                            key.Values.Add(new Value()
                            {
                                Identifier  = reader.GetAttribute("name"),
                                Description = reader.GetAttribute("_description")
                            });
                            return(true);
                        }
                        return(false);
                    });
                    result.keys.Add(key);
                    return(true);
                }
                return(false);
            });
            return(result);
        }
Beispiel #3
0
        public static List <Node> ReadNodeList(XmlReader reader, string tag)
        {
            List <Node> result = new List <Node> ();

            XmlReadHelper.ReadList(reader, tag, delegate()
            {
                switch (reader.LocalName)
                {
                case Section.XmlTag:
                    result.Add(Section.Read(reader));
                    return(true);

                case IfStatement.XmlTag:
                    result.Add(IfStatement.Read(reader));
                    return(true);

                case IfNotStatement.XmlTag:
                    result.Add(IfNotStatement.Read(reader));
                    return(true);

                case SwitchStatement.XmlTag:
                    result.Add(SwitchStatement.Read(reader));
                    return(true);
                }
                return(false);
            });
            return(result);
        }
Beispiel #4
0
		public static CodeTemplate Read (XmlReader reader)
		{
			Debug.Assert (reader.LocalName == Node);
			
			CodeTemplate result = new CodeTemplate ();
			
			XmlReadHelper.ReadList (reader, Node, delegate () {
				//Console.WriteLine (reader.LocalName);
				switch (reader.LocalName) {
				case HeaderNode:
					XmlReadHelper.ReadList (reader, HeaderNode, delegate () {
						switch (reader.LocalName) {
						case GroupNode:
							result.Group = reader.ReadElementContentAsString ();
							return true;
						case VersionNode:
							result.Version = reader.ReadElementContentAsString ();
							return true;
						case MimeNode:
							result.MimeType = reader.ReadElementContentAsString ();
							return true;
						case ContextNode:
							result.CodeTemplateContext = (CodeTemplateContext)Enum.Parse (typeof (CodeTemplateContext), reader.ReadElementContentAsString ());
							return true;
						case ShortcutNode:
							result.Shortcut = reader.ReadElementContentAsString ();
							return true;
						case DescriptionNode:
							result.Description = reader.ReadElementContentAsString ();
							return true;
						case TemplateTypeNode:
							result.CodeTemplateType = (CodeTemplateType)Enum.Parse (typeof (CodeTemplateType), reader.ReadElementContentAsString ());
							return true;
						}
						return false;
					});
					return true;
				case VariablesNode:
					XmlReadHelper.ReadList (reader, VariablesNode, delegate () {
						//Console.WriteLine ("var:" + reader.LocalName);
						switch (reader.LocalName) {
						case CodeTemplateVariable.Node:
							CodeTemplateVariable var = CodeTemplateVariable.Read (reader);
							result.variableDecarations [var.Name] = var;
							return true;
						}
						return false;
					});
					return true;
				case CodeNode:
					result.Code = reader.ReadElementContentAsString ();
					return true;
				}
				return false;
			});
			//Console.WriteLine ("result:" + result);
			return result;
		}
        public static CodeTemplateVariable Read(XmlReader reader)
        {
            CodeTemplateVariable result = new CodeTemplateVariable();

            result.Name = reader.GetAttribute(nameAttribute);
            string isEditable = reader.GetAttribute(editableAttribute);

            if (!string.IsNullOrEmpty(isEditable))
            {
                result.IsEditable = Boolean.Parse(isEditable);
            }
            string isIdentifier = reader.GetAttribute(identifierAttribute);

            if (!string.IsNullOrEmpty(isIdentifier))
            {
                result.IsIdentifier = Boolean.Parse(isIdentifier);
            }
            XmlReadHelper.ReadList(reader, Node, delegate()
            {
                //Console.WriteLine ("ctv:" +reader.LocalName);
                switch (reader.LocalName)
                {
                case DefaultNode:
                    result.Default = reader.ReadElementContentAsString();
                    return(true);

                case TooltipNode:
                    result.ToolTip = reader.ReadElementContentAsString();
                    return(true);

                case ValuesNode:
                    XmlReadHelper.ReadList(reader, ValuesNode, delegate()
                    {
                        switch (reader.LocalName)
                        {
                        case ValueNode:
                            string icon = reader.GetAttribute(iconAttribute);
                            string val  = reader.ReadElementContentAsString();
                            result.Values.Add(new CodeTemplateVariableValue(val, icon));
                            return(true);
                        }
                        return(false);
                    });
                    return(true);

                case FunctionNode:
                    result.Function = reader.ReadElementContentAsString();
                    return(true);
                }
                return(false);
            });
            //Console.WriteLine ("return:" + result);
            return(result);
        }
        public static CodeFormatType Read(XmlReader reader)
        {
            CodeFormatType result = new CodeFormatType();

            result.Name = reader.GetAttribute("name");
            XmlReadHelper.ReadList(reader, Node, delegate() {
                switch (reader.LocalName)
                {
                case "Value":
                    string displayName = reader.GetAttribute("_displayName");
                    string name        = reader.ReadElementString();
                    result.values.Add(new KeyValuePair <string, string> (name, displayName ?? name));
                    return(true);
                }
                return(false);
            });
            return(result);
        }
        public static CodeFormatCategory Read(CodeFormatDescription descr, XmlReader reader)
        {
            CodeFormatCategory result = new CodeFormatCategory();

            result.IsOptionCategory = reader.LocalName == OptionCategoryNode;
            result.DisplayName      = reader.GetAttribute("_displayName");
            XmlReadHelper.ReadList(reader, result.IsOptionCategory ? OptionCategoryNode : Node, delegate() {
                switch (reader.LocalName)
                {
                case "Option":
                    result.options.Add(CodeFormatOption.Read(descr, reader));
                    return(true);

                case CodeFormatCategory.OptionCategoryNode:
                case CodeFormatCategory.Node:
                    result.subCategories.Add(CodeFormatCategory.Read(descr, reader));
                    return(true);
                }
                return(false);
            });
            return(result);
        }
Beispiel #8
0
        ICustomXmlSerializer ReadFrom(XmlReader reader)
        {
            NodeState result = new NodeState();

            result.NodeName = reader.GetAttribute(nameAttribute);
            if (!String.IsNullOrEmpty(reader.GetAttribute(expandedAttribute)))
            {
                result.Expanded = Boolean.Parse(reader.GetAttribute(expandedAttribute));
            }
            if (!String.IsNullOrEmpty(reader.GetAttribute(selectedAttribute)))
            {
                result.Selected = Boolean.Parse(reader.GetAttribute(selectedAttribute));
            }

            XmlReadHelper.ReadList(reader, reader.LocalName, delegate() {
                switch (reader.LocalName)
                {
                case "Option":
                    if (result.Options == null)
                    {
                        result.Options = new Dictionary <string, bool> ();
                    }
                    result.Options [reader.GetAttribute("id")]   = bool.Parse(reader.GetAttribute("value"));
                    return(true);

                case "Node":
                    if (result.ChildrenState == null)
                    {
                        result.ChildrenState = new List <NodeState> ();
                    }
                    result.ChildrenState.Add((NodeState)ReadFrom(reader));
                    return(true);
                }
                return(false);
            });
            return(result);
        }
        ICustomXmlSerializer ReadFrom(XmlReader reader, ExtensibleTreeView.TreeOptions parentOptions)
        {
            NodeState result = new NodeState();

            result.NodeName = reader.GetAttribute(nameAttribute);
            if (!String.IsNullOrEmpty(reader.GetAttribute(expandedAttribute)))
            {
                result.Expanded = Boolean.Parse(reader.GetAttribute(expandedAttribute));
            }
            if (!String.IsNullOrEmpty(reader.GetAttribute(selectedAttribute)))
            {
                result.Selected = Boolean.Parse(reader.GetAttribute(selectedAttribute));
            }

            XmlReadHelper.ReadList(reader, reader.LocalName, delegate() {
                switch (reader.LocalName)
                {
                case "Option":
                    if (result.Options == null)
                    {
                        result.Options = parentOptions != null ? parentOptions.CloneOptions(Gtk.TreeIter.Zero) : new ExtensibleTreeView.TreeOptions();
                    }
                    result.Options [reader.GetAttribute("id")]   = bool.Parse(reader.GetAttribute("value"));
                    return(true);

                case "Node":
                    if (result.ChildrenState == null)
                    {
                        result.ChildrenState = new List <NodeState> ();
                    }
                    result.ChildrenState.Add((NodeState)ReadFrom(reader, result.Options != null ? result.Options : parentOptions));
                    return(true);
                }
                return(false);
            });
            return(result);
        }
Beispiel #10
0
        public static DocConfig Read(XmlReader reader)
        {
            DocConfig result = new DocConfig();

            XmlReadHelper.ReadList(reader, "DocFood", delegate() {
                switch (reader.LocalName)
                {
                case "WordLists":
                    XmlReadHelper.ReadList(reader, reader.LocalName, delegate() {
                        switch (reader.LocalName)
                        {
                        case "List":
                            string name         = reader.GetAttribute("name");
                            List <string> words = new List <string> ();
                            XmlReadHelper.ReadList(reader, reader.LocalName, delegate() {
                                switch (reader.LocalName)
                                {
                                case "Word":
                                    words.Add(reader.ReadElementString());
                                    return(true);
                                }
                                return(false);
                            });
                            result.WordLists[name] = words;
                            return(true);
                        }
                        return(false);
                    });
                    return(true);

                case "WordExpansion":
                    XmlReadHelper.ReadList(reader, reader.LocalName, delegate() {
                        switch (reader.LocalName)
                        {
                        case "Word":
                            result.WordExpansions[reader.GetAttribute("from")] = reader.GetAttribute("to");
                            return(true);
                        }
                        return(false);
                    });
                    return(true);

                case "Macros":
                    XmlReadHelper.ReadList(reader, reader.LocalName, delegate() {
                        switch (reader.LocalName)
                        {
                        case "Macro":
                            result.Macros[reader.GetAttribute("tag")] = reader.GetAttribute("value");
                            return(true);
                        }
                        return(false);
                    });
                    return(true);

                case "Rules":
                    result.Rules = Node.ReadNodeList(reader, "Rules");
                    return(true);
                }
                return(false);
            });
            return(result);
        }