예제 #1
0
        public XmlNodeSyntax CreateElement(XmlElementEndTagSyntax endElement)
        {
            Debug.Assert(endElement != null);
            var contentList = _content.ToList();

            _pool.Free(_content);
            return(SyntaxFactory.XmlElement(_start, contentList, endElement));
        }
        // Get the final list of trivia nodes we should attached.
        public SyntaxList <SyntaxNode> GetTriviaList()
        {
            FinishInProgressTokens();
            if (diagnosticsToAdd != null && diagnosticsToAdd.Any())
            {
                // Still have diagnostics. Add to the last item.
                if (triviaListBuilder.Count > 0)
                {
                    triviaListBuilder[triviaListBuilder.Count - 1] = triviaListBuilder[triviaListBuilder.Count - 1].WithAdditionalDiagnostics(diagnosticsToAdd.ToArray());
                }
            }

            return(triviaListBuilder.ToList());
        }
        // Create a SkippedTokens trivia from any tokens currently accumulated into the skippedTokensBuilder. If not,
        // don't do anything.
        private void FinishInProgressTokens()
        {
            if (skippedTokensBuilder.Count > 0)
            {
                var skippedTokensTrivia = SyntaxFactory.SkippedTokensTrivia(skippedTokensBuilder.ToList());
                if (diagnosticsToAdd != null)
                {
                    foreach (var d in diagnosticsToAdd)
                    {
                        ////skippedTokensTrivia = skippedTokensTrivia.AddError(d);
                    }

                    diagnosticsToAdd = null; // only add once.
                }

                triviaListBuilder.Add(skippedTokensTrivia);
                skippedTokensBuilder.Clear();
            }
        }
예제 #4
0
 public SyntaxList <TNode> ToList()
 {
     return(_builder.ToList());
 }