private SyntaxToken XmlMakeBeginCDataToken(
SyntaxList<SyntaxNode> leadingTrivia,
Func<SyntaxList<SyntaxNode>> scanTrailingTrivia)
{
Debug.Assert(PeekChar() == '<');
Debug.Assert(PeekAheadChar(1) == '!');
Debug.Assert(PeekAheadChar(2) == '[');
Debug.Assert(PeekAheadChar(3) == 'C');
Debug.Assert(PeekAheadChar(4) == 'D');
Debug.Assert(PeekAheadChar(5) == 'A');
Debug.Assert(PeekAheadChar(6) == 'T');
Debug.Assert(PeekAheadChar(7) == 'A');
Debug.Assert(PeekAheadChar(8) == '[');
AdvanceChar(9);
var followingTrivia = scanTrailingTrivia();
return MakePunctuationToken(
SyntaxKind.BeginCDataToken,
"<![CDATA[",
leadingTrivia,
followingTrivia);
}