Пример #1
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="reader"></param>
        /// <returns></returns>
        public static IXamlNode Parse(TextReader reader)
        {
            if (null == reader)
            {
                throw new ArgumentNullException(nameof(reader));
            }

            using (var tokenizer = new XamlTokenizer(reader))
            {
                var context = new XamlParsingContext();
//                var root = new XamlRootNode();
//                var stack = new Stack<XamlNode>();

//                stack.Push(root);

                try
                {
                    var parser = new XamlParser(tokenizer);

                    parser.Parse(context);
                    context.ValidateDocument(new XamlDocumentValidator());
                }
                catch (Exception exception)
                {
//                    var position = tokenizer.GetSourcePosition();
                    throw new XamlParsingException();
                }

                return context.DocumentRoot;
            }
        }
Пример #2
0
 private XamlParser(XamlTokenizer tokenizer)
 {
     this.tokenizer = tokenizer;
     comparer = StringComparer.Ordinal;
 }
Пример #3
0
 /// <summary>
 /// Выполняет инициализацию нового экземпляра класса <see cref="T:System.Exception"/>, используя указанное сообщение об ошибке.
 /// </summary>
 public TokenizerException(XamlTokenizer tokenizer, string message)
     : base(message)
 {
     Tokenizer = tokenizer;
 }