1 instantiation of SlidingTextWindow
Microsoft.CodeAnalysis.CSharp (1)
Parser\AbstractLexer.cs (1)
24
this.TextWindow = new
SlidingTextWindow
(text);
66 references to SlidingTextWindow
Microsoft.CodeAnalysis.CSharp (53)
Parser\AbstractLexer.cs (1)
17
internal
SlidingTextWindow
TextWindow;
Parser\LanguageParser_InterpolatedString.cs (2)
139
var afterNewLine =
SlidingTextWindow
.GetNewLineWidth(closeQuoteText[0], closeQuoteText[1]);
338
currentIndex +=
SlidingTextWindow
.GetNewLineWidth(ch, currentIndex + 1 < text.Length ? text[currentIndex + 1] : '\0');
Parser\Lexer.cs (38)
669
case
SlidingTextWindow
.InvalidCharacter:
1437
char surrogateCharacter =
SlidingTextWindow
.InvalidCharacter;
1461
case
SlidingTextWindow
.InvalidCharacter:
1574
if (surrogateCharacter !=
SlidingTextWindow
.InvalidCharacter)
1673
consumedSurrogate =
SlidingTextWindow
.InvalidCharacter;
1695
Debug.Assert(consumedSurrogate ==
SlidingTextWindow
.InvalidCharacter, "Since consumedChar == '\\'");
1741
case
SlidingTextWindow
.InvalidCharacter:
1776
if (consumedSurrogate !=
SlidingTextWindow
.InvalidCharacter)
2129
if (ch ==
SlidingTextWindow
.InvalidCharacter)
2182
if (ch ==
SlidingTextWindow
.InvalidCharacter || SyntaxFacts.IsNewLine(ch))
2217
if ((ch = TextWindow.PeekChar()) ==
SlidingTextWindow
.InvalidCharacter && TextWindow.IsReallyAtEnd())
2239
(ch !=
SlidingTextWindow
.InvalidCharacter || !TextWindow.IsReallyAtEnd()))
2428
case
SlidingTextWindow
.InvalidCharacter:
2498
else if (ch is
SlidingTextWindow
.InvalidCharacter && this.TextWindow.IsReallyAtEnd())
2553
case
SlidingTextWindow
.InvalidCharacter:
2807
Debug.Assert(this.LocationIs(XmlDocCommentLocation.End) || TextWindow.PeekChar() ==
SlidingTextWindow
.InvalidCharacter);
2868
case
SlidingTextWindow
.InvalidCharacter:
3040
if (lowSurrogate !=
SlidingTextWindow
.InvalidCharacter)
3132
case
SlidingTextWindow
.InvalidCharacter:
3265
case
SlidingTextWindow
.InvalidCharacter:
3430
case
SlidingTextWindow
.InvalidCharacter:
3486
case
SlidingTextWindow
.InvalidCharacter:
3556
case
SlidingTextWindow
.InvalidCharacter:
3612
char consumedSurrogate =
SlidingTextWindow
.InvalidCharacter;
3641
case
SlidingTextWindow
.InvalidCharacter:
3914
&& nextChar == ch && nextSurrogate ==
SlidingTextWindow
.InvalidCharacter)
4033
case
SlidingTextWindow
.InvalidCharacter:
4077
case
SlidingTextWindow
.InvalidCharacter:
4164
case
SlidingTextWindow
.InvalidCharacter:
4207
case
SlidingTextWindow
.InvalidCharacter:
4286
case
SlidingTextWindow
.InvalidCharacter:
4331
case
SlidingTextWindow
.InvalidCharacter:
4589
surrogateCharacter =
SlidingTextWindow
.InvalidCharacter;
4609
Debug.Assert(ch !=
SlidingTextWindow
.InvalidCharacter, "Precondition established by all callers; required for correctness of AdvanceChar() call.");
4619
surrogateCharacter =
SlidingTextWindow
.InvalidCharacter;
4632
surrogateCharacter =
SlidingTextWindow
.InvalidCharacter;
4746
surrogate =
SlidingTextWindow
.InvalidCharacter;
4850
lowSurrogate =
SlidingTextWindow
.InvalidCharacter;
Parser\Lexer_RawStringLiteral.cs (1)
55
=> currentChar ==
SlidingTextWindow
.InvalidCharacter && TextWindow.IsReallyAtEnd();
Parser\Lexer_StringLiteral.cs (7)
47
if (c2 !=
SlidingTextWindow
.InvalidCharacter)
58
(ch ==
SlidingTextWindow
.InvalidCharacter && TextWindow.IsReallyAtEnd()))
91
info.CharValue =
SlidingTextWindow
.InvalidCharacter;
132
surrogateCharacter =
SlidingTextWindow
.InvalidCharacter;
229
if (ch ==
SlidingTextWindow
.InvalidCharacter && TextWindow.IsReallyAtEnd())
364
(ch ==
SlidingTextWindow
.InvalidCharacter && _lexer.TextWindow.IsReallyAtEnd());
414
ref
var
window = ref _lexer.TextWindow;
Parser\LexerCache.cs (1)
187
in
SlidingTextWindow
textWindow,
Parser\SlidingTextWindow.cs (3)
468
public static int GetOffset(in
SlidingTextWindow
window) => window._positionInText - window._characterWindowStartPositionInText;
469
public static int GetCharacterWindowStartPositionInText(in
SlidingTextWindow
window) => window._characterWindowStartPositionInText;
470
public static ArraySegment<char> GetCharacterWindow(in
SlidingTextWindow
window) => window._characterWindow;
Microsoft.CodeAnalysis.CSharp.Syntax.UnitTests (13)
LexicalAndXml\LexicalTests.cs (13)
592
Assert.Equal('\uFFFF',
SlidingTextWindow
.InvalidCharacter);
1503
Assert.Equal(
SlidingTextWindow
.InvalidCharacter, Char.Parse(token.ValueText));
1554
Assert.Equal(
SlidingTextWindow
.InvalidCharacter, Char.Parse(token.ValueText));
1579
Assert.Equal('\uFFFF',
SlidingTextWindow
.InvalidCharacter);
4593
var code = new string('/',
SlidingTextWindow
.DefaultWindowLength - windowEnd.Length) + windowEnd + "0;";
4617
Assert.Equal(
SlidingTextWindow
.DefaultWindowLength - 2, token1.FullWidth);
4619
Assert.Equal(
SlidingTextWindow
.DefaultWindowLength - 2,
SlidingTextWindow
.TestAccessor.GetOffset(lexer.TextWindow));
4623
Assert.Equal(
SlidingTextWindow
.DefaultWindowLength - 1,
SlidingTextWindow
.TestAccessor.GetOffset(lexer.TextWindow));
4628
Assert.Equal(code.IndexOf('.'),
SlidingTextWindow
.TestAccessor.GetCharacterWindowStartPositionInText(lexer.TextWindow));
4629
Assert.Equal(2,
SlidingTextWindow
.TestAccessor.GetOffset(lexer.TextWindow));
4630
Assert.StartsWith("..0;",
SlidingTextWindow
.TestAccessor.GetCharacterWindow(lexer.TextWindow).AsSpan().ToString());