示例#1
0
        private void ReadFrom(PListReader reader)
        {
            PListObject parent = this;

            do
            {
                switch (reader.TokenType)
                {
                case (PListToken.None): break;

                case (PListToken.StartDict):
                {
                    PListDict dict = new PListDict();
                    dict.Parent = parent;
                    parent      = dict;
                    break;
                }

                case (PListToken.EndDict):
                {
                    if (parent == this)
                    {
                        return;
                    }
                    parent = parent.Parent;
                    break;
                }
                }
            } while (reader.Read());
        }
示例#2
0
        private static PListDocument Load(PListReader reader)
        {
            /*ValidationUtils.ArgumentNotNull(reader, "reader");
             *
             * if (reader.TokenType == JsonToken.None)
             * {
             *  if (!reader.Read())
             *      throw JsonReaderException.Create(reader, "Error reading JObject from JsonReader.");
             * }
             *
             * while (reader.TokenType == JsonToken.Comment)
             * {
             *  reader.Read();
             * }
             *
             * if (reader.TokenType != JsonToken.StartObject)
             * {
             *  throw JsonReaderException.Create(reader, "Error reading JObject from JsonReader. Current JsonReader item is not an object: {0}".FormatWith(CultureInfo.InvariantCulture, reader.TokenType));
             * }
             */
            PListDocument o = new PListDocument();

            // o.SetLineInfo(reader as IJsonLineInfo);

            o.ReadFrom(reader);

            return(o);
        }
示例#3
0
        private void Application_Startup(object sender, StartupEventArgs e)
        {
            string json = "{x:0}";

            var r = new JsonTextReader(new StringReader(json));

            var      xa = new XAttribute("test", 0);
            XElement x  = new XElement("X", xa);
            var      p  = xa.Parent;

            /*string str = VitML.PListParser.Test.Properties.Resources.plist;
             * PListProperty prop = PListProperty.Parse(str);
             * string plist = prop.ToString();
             * prop = PListProperty.Parse(str);
             * prop.ToStringIndent();
             *
             * PListProperty p = new PListProperty("plist",
             *  new PListAttribute("ok", "is"),
             *  new PListProperty("ok", 0),
             *  new PListProperty("str", new PListString("val", '\''))
             *  );
             * var plist2 = p.ToString();
             */
            var    str    = "{}"; //VitML.PListParser.Test.Properties.Resources.TestStringPList
            var    reader = new PListReader(str);
            var    bld    = new PListBuilder(reader);
            var    obj    = bld.Parse();
            string plist  = obj.ToPList(0);

            /* List<PListToken> tokens = new List<PListToken>();
             * PListToken tok = null;
             * while((tok = reader.GetToken())!=null)
             * {
             *   tokens.Add(tok);
             * }*/

            Environment.Exit(0);
        }
示例#4
0
 public PListBuilder(PListReader reader)
 {
     this.reader = reader;
 }