public IComment Parse(ICommentParser parser, XmlNode node, bool first, bool last, ParseOptions options)
        {
            if (options.PreserveWhitespace)
                return new InlineText(node.InnerText.NormaliseIndent());

            return new InlineText(node.InnerText.TrimComment(first, last));
        }
Exemple #2
0
        public IList<IComment> ParseNode(XmlNode node, ParseOptions options)
        {
            var blocks = new List<IComment>();

            blocks.AddRange(Parse(node.ChildNodes, options));

            return blocks.AsReadOnly();
        }
Exemple #3
0
        public Comment Parse(ICommentParser parser, XmlNode node, bool first, bool last, ParseOptions options)
        {
            IReferencable reference = new NullReference();
            if (node.Attributes["cref"] == null) return new See(reference);
            var referenceTarget = IdentifierFor.XmlString(node.Attributes["cref"].Value);

            if (referenceTarget is NamespaceIdentifier)
                reference = Namespace.Unresolved((NamespaceIdentifier)referenceTarget);
            else if (referenceTarget is TypeIdentifier)
                reference = DeclaredType.Unresolved((TypeIdentifier)referenceTarget, Namespace.Unresolved(referenceTarget.CloneAsNamespace()));
            else if (referenceTarget is MethodIdentifier)
                reference = Method.Unresolved(
                    (MethodIdentifier)referenceTarget,
                    DeclaredType.Unresolved(
                        referenceTarget.CloneAsType(),
                        Namespace.Unresolved(referenceTarget.CloneAsNamespace())
                    )
                );
            else if (referenceTarget is PropertyIdentifier)
                reference = Property.Unresolved(
                    (PropertyIdentifier)referenceTarget,
                    DeclaredType.Unresolved(
                        referenceTarget.CloneAsType(),
                        Namespace.Unresolved(referenceTarget.CloneAsNamespace())
                    )
                );
            else if (referenceTarget is EventIdentifier)
                reference = Event.Unresolved(
                    (EventIdentifier)referenceTarget,
                    DeclaredType.Unresolved(
                        referenceTarget.CloneAsType(),
                        Namespace.Unresolved(referenceTarget.CloneAsNamespace())
                    )
                );
            else if (referenceTarget is FieldIdentifier)
                reference = Field.Unresolved(
                    (FieldIdentifier)referenceTarget,
                    DeclaredType.Unresolved(
                        referenceTarget.CloneAsType(),
                        Namespace.Unresolved(referenceTarget.CloneAsNamespace())
                    )
                );

            return new See(reference);
        }
 public IComment Parse(ICommentParser parser, XmlNode node, bool first, bool last, ParseOptions options)
 {
     var typeAttribute = node.Attributes["type"];
     var listTypeName = typeAttribute == null ? string.Empty : typeAttribute.Value;
     var list = createListForType(listTypeName);
     foreach (XmlNode itemNode in node.SelectNodes("item"))
     {
         Paragraph term = null;
         Paragraph definition = null;
         var termNode = itemNode.SelectSingleNode("term");
         if (termNode != null)
         {
             term = new Paragraph(parser.Parse(termNode.ChildNodes));
         }
         var definitionNode = itemNode.SelectSingleNode("description");
         if (definitionNode != null)
         {
             definition = new Paragraph(parser.Parse(definitionNode.ChildNodes));
         }
         list.Items.Add(new InlineListItem(term, definition));
     }
     return list;
 }
Exemple #5
0
        public IList<Comment> Parse(XmlNodeList nodes, ParseOptions options)
        {
            var blocks = new List<Comment>();

            var count = nodes.Count;
            for(var i = 0; i < count; i++)
            {
                var node = nodes[i];
                var first = (i == 0);
                var last = (i == (count - 1));

                var parser = _parsers.FirstOrDefault(p => p.CanParse(node));
                if (parser == null) continue;

                var block = parser.Parse(this, node, first, last, options);
                if (block != null)
                {
                    blocks.Add(block);
                }
            }

            return blocks;
        }
 public Comment Parse(ICommentParser parser, XmlNode node, bool first, bool last, ParseOptions options)
 {
     return new InlineCode(node.InnerText.TrimComment(first, last));
 }
 public Comment Parse(ICommentParser parser, XmlNode node, bool first, bool last, ParseOptions options)
 {
     return new Paragraph(parser.Parse(node.ChildNodes));
 }
 public IComment Parse(ICommentParser parser, XmlNode node, bool first, bool last, ParseOptions options)
 {
     var attribute = node.Attributes["name"];
     var parameterName = attribute == null ? string.Empty : attribute.Value;
     return new ParameterReference(parameterName);
 }
Exemple #9
0
 public IList<Comment> ParseNode(XmlNode node, ParseOptions options)
 {
     return Parse(node.ChildNodes, options);
 }
Exemple #10
0
        public IComment Parse(ICommentParser parser, XmlNode node, bool first, bool last, ParseOptions options)
        {
            if (options.PreserveWhitespace)
            {
                return(new InlineText(node.InnerText.NormaliseIndent()));
            }

            return(new InlineText(node.InnerText.TrimComment(first, last)));
        }
Exemple #11
0
        public IComment Parse(ICommentParser parser, XmlNode node, bool first, bool last, ParseOptions options)
        {
            var typeAttribute = node.Attributes["type"];
            var listTypeName  = typeAttribute == null ? string.Empty : typeAttribute.Value;
            var list          = createListForType(listTypeName);

            foreach (XmlNode itemNode in node.SelectNodes("item"))
            {
                Paragraph term       = null;
                Paragraph definition = null;
                var       termNode   = itemNode.SelectSingleNode("term");
                if (termNode != null)
                {
                    term = new Paragraph(parser.Parse(termNode.ChildNodes));
                }
                var definitionNode = itemNode.SelectSingleNode("description");
                if (definitionNode != null)
                {
                    definition = new Paragraph(parser.Parse(definitionNode.ChildNodes));
                }
                list.Items.Add(new InlineListItem(term, definition));
            }
            return(list);
        }
Exemple #12
0
 public IComment Parse(ICommentParser parser, XmlNode node, bool first, bool last, ParseOptions options)
 {
     return(new InlineCode(node.InnerText.TrimComment(first, last)));
 }