199 references to RegexKind
Microsoft.CodeAnalysis.Features (199)
EmbeddedLanguages\RegularExpressions\LanguageServices\RegexBraceMatcher.cs (3)
19
using RegexToken = EmbeddedSyntaxToken<
RegexKind
>;
20
using RegexTrivia = EmbeddedSyntaxTrivia<
RegexKind
>;
79
if (trivia?.Kind !=
RegexKind
.CommentTrivia)
EmbeddedLanguages\RegularExpressions\LanguageServices\RegexClassifier.cs (3)
19
using RegexToken = EmbeddedSyntaxToken<
RegexKind
>;
20
using RegexTrivia = EmbeddedSyntaxTrivia<
RegexKind
>;
97
if (trivia.Kind ==
RegexKind
.CommentTrivia &&
EmbeddedLanguages\RegularExpressions\LanguageServices\RegexDocumentHighlighter.cs (5)
20
using RegexToken = EmbeddedSyntaxToken<
RegexKind
>;
88
if (captureToken.Kind ==
RegexKind
.NumberToken)
128
if (node.Kind is
RegexKind
.BackreferenceEscape or
129
RegexKind
.CaptureEscape or
130
RegexKind
.KCaptureEscape)
EmbeddedLanguages\RegularExpressions\LanguageServices\RegexEmbeddedCompletionProvider.cs (4)
24
using RegexToken = EmbeddedSyntaxToken<
RegexKind
>;
191
case
RegexKind
.BackslashToken:
194
case
RegexKind
.OpenBracketToken:
197
case
RegexKind
.OpenParenToken:
EmbeddedLanguages\RegularExpressions\RegexHelpers.cs (6)
15
using RegexToken = EmbeddedSyntaxToken<
RegexKind
>;
16
using RegexTrivia = EmbeddedSyntaxTrivia<
RegexKind
>;
23
public static RegexToken CreateToken(
RegexKind
kind, ImmutableArray<RegexTrivia> leadingTrivia, VirtualCharSequence virtualChars)
26
public static RegexToken CreateMissingToken(
RegexKind
kind)
29
public static RegexTrivia CreateTrivia(
RegexKind
kind, VirtualCharSequence virtualChars)
32
public static RegexTrivia CreateTrivia(
RegexKind
kind, VirtualCharSequence virtualChars, ImmutableArray<EmbeddedDiagnostic> diagnostics)
EmbeddedLanguages\RegularExpressions\RegexLexer.cs (38)
17
using RegexToken = EmbeddedSyntaxToken<
RegexKind
>;
18
using RegexTrivia = EmbeddedSyntaxTrivia<
RegexKind
>;
33
/// cref="RegexTextNode"/>s in a row (each containing a <see cref="
RegexKind
.TextToken"/> a
60
return CreateToken(
RegexKind
.EndOfFile, trivia, VirtualCharSequence.Empty);
69
private static
RegexKind
GetKind(VirtualChar ch)
72
'|' =>
RegexKind
.BarToken,
73
'*' =>
RegexKind
.AsteriskToken,
74
'+' =>
RegexKind
.PlusToken,
75
'?' =>
RegexKind
.QuestionToken,
76
'{' =>
RegexKind
.OpenBraceToken,
77
'}' =>
RegexKind
.CloseBraceToken,
78
'\\' =>
RegexKind
.BackslashToken,
79
'[' =>
RegexKind
.OpenBracketToken,
80
']' =>
RegexKind
.CloseBracketToken,
81
'.' =>
RegexKind
.DotToken,
82
'^' =>
RegexKind
.CaretToken,
83
'$' =>
RegexKind
.DollarToken,
84
'(' =>
RegexKind
.OpenParenToken,
85
')' =>
RegexKind
.CloseParenToken,
86
',' =>
RegexKind
.CommaToken,
87
':' =>
RegexKind
.ColonToken,
88
'=' =>
RegexKind
.EqualsToken,
89
'!' =>
RegexKind
.ExclamationToken,
90
'<' =>
RegexKind
.LessThanToken,
91
'>' =>
RegexKind
.GreaterThanToken,
92
'-' =>
RegexKind
.MinusToken,
93
'\'' =>
RegexKind
.SingleQuoteToken,
94
_ =>
RegexKind
.TextToken,
148
return CreateTrivia(
RegexKind
.CommentTrivia, GetSubPatternToCurrentPos(start));
166
return CreateTrivia(
RegexKind
.CommentTrivia, GetSubPatternToCurrentPos(start), diagnostics);
170
return CreateTrivia(
RegexKind
.CommentTrivia, GetSubPatternToCurrentPos(start));
208
return CreateTrivia(
RegexKind
.WhitespaceTrivia, GetSubPatternToCurrentPos(start));
240
var token = CreateToken(
RegexKind
.EscapeCategoryToken, [], GetSubPatternToCurrentPos(start));
294
var token = CreateToken(
RegexKind
.NumberToken, [], GetSubPatternToCurrentPos(start));
325
var token = CreateToken(
RegexKind
.CaptureNameToken, [], GetSubPatternToCurrentPos(start));
343
: CreateToken(
RegexKind
.OptionsToken, ImmutableArray<RegexTrivia>.Empty, GetSubPatternToCurrentPos(start));
386
RegexKind
.TextToken, [], GetSubPatternToCurrentPos(start));
447
RegexKind
.TextToken, [], GetSubPatternToCurrentPos(start));
EmbeddedLanguages\RegularExpressions\RegexNode.cs (2)
9
internal abstract class RegexNode : EmbeddedSyntaxNode<
RegexKind
, RegexNode>
11
protected RegexNode(
RegexKind
kind) : base(kind)
EmbeddedLanguages\RegularExpressions\RegexNodes.cs (6)
12
using RegexNodeOrToken = EmbeddedSyntaxNodeOrToken<
RegexKind
, RegexNode>;
13
using RegexToken = EmbeddedSyntaxToken<
RegexKind
>;
14
using RegexAlternatingSequenceList = EmbeddedSeparatedSyntaxNodeList<
RegexKind
, RegexNode, RegexSequenceNode>;
19
: base(
RegexKind
.CompilationUnit)
22
Debug.Assert(endOfFileToken.Kind ==
RegexKind
.EndOfFile);
55
internal sealed class RegexSequenceNode(ImmutableArray<RegexExpressionNode> children) : RegexExpressionNode(
RegexKind
.Sequence)
EmbeddedLanguages\RegularExpressions\RegexParser.CaptureInfoAnalyzer.cs (7)
20
using RegexToken = EmbeddedSyntaxToken<
RegexKind
>;
85
case
RegexKind
.CaptureGrouping:
90
case
RegexKind
.BalancingGrouping:
95
case
RegexKind
.ConditionalExpressionGrouping:
104
case
RegexKind
.SimpleGrouping:
108
case
RegexKind
.NestedOptionsGrouping:
185
if (token.Kind ==
RegexKind
.NumberToken)
EmbeddedLanguages\RegularExpressions\RegexParser.cs (124)
20
using RegexAlternatingSequenceList = EmbeddedSeparatedSyntaxNodeList<
RegexKind
, RegexNode, RegexSequenceNode>;
21
using RegexNodeOrToken = EmbeddedSyntaxNodeOrToken<
RegexKind
, RegexNode>;
22
using RegexToken = EmbeddedSyntaxToken<
RegexKind
>;
169
Debug.Assert(_currentToken.Kind ==
RegexKind
.EndOfFile);
267
while (_currentToken.Kind ==
RegexKind
.BarToken)
312
if (current.Kind !=
RegexKind
.Text)
360
RegexKind
.TextToken, startTextNode.TextToken.LeadingTrivia,
371
if (next.Kind ==
RegexKind
.Text)
397
if (_currentToken.Kind ==
RegexKind
.EndOfFile)
402
if (_currentToken.Kind ==
RegexKind
.BarToken)
407
if (_currentToken.Kind ==
RegexKind
.CloseParenToken)
418
if (current.Kind ==
RegexKind
.SimpleOptionsGrouping)
426
RegexKind
.AsteriskToken => ParseZeroOrMoreQuantifier(current),
427
RegexKind
.PlusToken => ParseOneOrMoreQuantifier(current),
428
RegexKind
.QuestionToken => ParseZeroOrOneQuantifier(current),
429
RegexKind
.OpenBraceToken => TryParseNumericQuantifier(current, _currentToken),
436
if (_currentToken.Kind !=
RegexKind
.QuestionToken)
522
if (_currentToken.Kind ==
RegexKind
.CommaToken)
554
if (_currentToken.Kind !=
RegexKind
.CloseBraceToken)
574
RegexKind
.DotToken => ParseWildcard(),
575
RegexKind
.CaretToken => ParseStartAnchor(),
576
RegexKind
.DollarToken => ParseEndAnchor(),
577
RegexKind
.BackslashToken => ParseEscape(_currentToken, allowTriviaAfterEnd: true),
578
RegexKind
.OpenBracketToken => ParseCharacterClass(),
579
RegexKind
.OpenParenToken => ParseGrouping(inConditionalExpression: false),
580
RegexKind
.CloseParenToken => ParseUnexpectedCloseParenToken(),
581
RegexKind
.OpenBraceToken => ParsePossibleUnexpectedNumericQuantifier(lastExpression),
582
RegexKind
.AsteriskToken or
RegexKind
.PlusToken or
RegexKind
.QuestionToken => ParseUnexpectedQuantifier(lastExpression),
592
var openBraceToken = _currentToken.With(kind:
RegexKind
.TextToken);
610
var token = _currentToken.With(kind:
RegexKind
.TextToken).AddDiagnosticIfNone(
626
return new RegexTextNode(token.With(kind:
RegexKind
.TextToken));
632
return new RegexAnchorNode(
RegexKind
.EndAnchor, ConsumeCurrentToken(allowTrivia: true));
638
return new RegexAnchorNode(
RegexKind
.StartAnchor, ConsumeCurrentToken(allowTrivia: true));
657
case
RegexKind
.QuestionToken:
671
case
RegexKind
.CloseParenToken:
676
return CreateMissingToken(
RegexKind
.CloseParenToken).AddDiagnosticIfNone(
704
=> token.Kind ==
RegexKind
.EndOfFile
710
return token.Kind ==
RegexKind
.EndOfFile
733
case
RegexKind
.LessThanToken:
737
case
RegexKind
.SingleQuoteToken:
742
case
RegexKind
.OpenParenToken:
746
case
RegexKind
.ColonToken:
749
case
RegexKind
.EqualsToken:
752
case
RegexKind
.ExclamationToken:
755
case
RegexKind
.GreaterThanToken:
759
if (_currentToken.Kind !=
RegexKind
.CloseParenToken)
791
if (capture.Kind ==
RegexKind
.NumberToken)
802
if (_currentToken.Kind ==
RegexKind
.CloseParenToken)
814
innerCloseParenToken = CreateMissingToken(
RegexKind
.CloseParenToken);
835
if (_currentToken.Kind !=
RegexKind
.CloseParenToken)
864
if (_currentToken.Kind !=
RegexKind
.EndOfFile)
917
Debug.Assert(_currentToken.Kind ==
RegexKind
.OpenParenToken);
951
case
RegexKind
.EqualsToken:
956
case
RegexKind
.ExclamationToken:
985
captureToken = CreateMissingToken(
RegexKind
.CaptureNameToken);
987
if (_currentToken.Kind ==
RegexKind
.MinusToken)
1005
if (capture.Kind ==
RegexKind
.NumberToken && (int)capture.Value == 0)
1015
if (_currentToken.Kind ==
RegexKind
.MinusToken)
1033
if ((openToken.Kind ==
RegexKind
.LessThanToken && _currentToken.Kind ==
RegexKind
.GreaterThanToken) ||
1034
(openToken.Kind ==
RegexKind
.SingleQuoteToken && _currentToken.Kind ==
RegexKind
.SingleQuoteToken))
1039
if (_currentToken.Kind ==
RegexKind
.EndOfFile)
1056
openToken.Kind ==
RegexKind
.LessThanToken
1057
?
RegexKind
.GreaterThanToken :
RegexKind
.SingleQuoteToken);
1078
secondCapture = CreateMissingToken(
RegexKind
.CaptureNameToken);
1102
if (captureToken.Kind ==
RegexKind
.NumberToken)
1151
case
RegexKind
.CloseParenToken:
1158
case
RegexKind
.ColonToken:
1164
CreateMissingToken(
RegexKind
.CloseParenToken).AddDiagnosticIfNone(
1176
=> currentToken.Kind ==
RegexKind
.TextToken && currentToken.VirtualChars.Length == 1 && currentToken.VirtualChars[0].Value == ch;
1223
Debug.Assert(openBracketToken.Kind ==
RegexKind
.OpenBracketToken);
1224
var caretToken = CreateMissingToken(
RegexKind
.CaretToken);
1225
var closeBracketToken = CreateMissingToken(
RegexKind
.CloseBracketToken);
1229
if (_currentToken.Kind ==
RegexKind
.CaretToken)
1242
while (_currentToken.Kind !=
RegexKind
.EndOfFile)
1246
if (_currentToken.Kind ==
RegexKind
.CloseBracketToken && builder.Count > 0)
1277
if (left.Kind is
RegexKind
.CharacterClassEscape or
RegexKind
.CategoryEscape ||
1286
if (_currentToken.Kind ==
RegexKind
.MinusToken && !_lexer.IsAt("]"))
1291
if (_currentToken.Kind ==
RegexKind
.OpenBracketToken)
1342
case
RegexKind
.SimpleEscape:
1347
case
RegexKind
.ControlEscape:
1363
case
RegexKind
.OctalEscape:
1367
case
RegexKind
.HexEscape:
1371
case
RegexKind
.UnicodeEscape:
1375
case
RegexKind
.Text:
1379
case
RegexKind
.Sequence:
1470
if (_currentToken.Kind ==
RegexKind
.BackslashToken && _lexer.Position < _lexer.Text.Length)
1512
backslashToken, ConsumeCurrentToken(allowTrivia: false).With(kind:
RegexKind
.TextToken));
1528
_currentToken.Kind ==
RegexKind
.MinusToken &&
1539
ConsumeCurrentToken(allowTrivia: false).With(kind:
RegexKind
.TextToken));
1546
if (_currentToken.Kind is not
RegexKind
.CloseBracketToken and not
RegexKind
.EndOfFile)
1568
if (_currentToken.Kind ==
RegexKind
.EndOfFile)
1573
return new RegexSimpleEscapeNode(backslashToken, CreateMissingToken(
RegexKind
.TextToken));
1614
if (_currentToken.Kind ==
RegexKind
.EndOfFile)
1619
return new RegexSimpleEscapeNode(backslashToken, CreateMissingToken(
RegexKind
.TextToken));
1688
RegexKind
.NumberToken, [],
1750
return new RegexSimpleEscapeNode(backslashToken, typeToken.With(kind:
RegexKind
.TextToken));
1769
openToken = CreateMissingToken(
RegexKind
.LessThanToken);
1770
capture = CreateMissingToken(
RegexKind
.CaptureNameToken);
1771
closeToken = CreateMissingToken(
RegexKind
.GreaterThanToken);
1777
(_currentToken.Kind ==
RegexKind
.LessThanToken || _currentToken.Kind ==
RegexKind
.SingleQuoteToken))
1788
? CreateMissingToken(
RegexKind
.CaptureNameToken)
1793
closeToken = CreateMissingToken(
RegexKind
.GreaterThanToken);
1796
((openToken.Kind ==
RegexKind
.LessThanToken && _currentToken.Kind ==
RegexKind
.GreaterThanToken) ||
1797
(openToken.Kind ==
RegexKind
.SingleQuoteToken && _currentToken.Kind ==
RegexKind
.SingleQuoteToken)))
1842
var typeToken = ConsumeCurrentToken(allowTrivia: allowTriviaAfterEnd).With(kind:
RegexKind
.TextToken);
1876
if (_currentToken.Kind ==
RegexKind
.EndOfFile)
1881
return new RegexControlEscapeNode(backslashToken, typeToken, CreateMissingToken(
RegexKind
.TextToken));
1913
var controlToken = ConsumeCurrentToken(allowTrivia: allowTriviaAfterEnd).With(kind:
RegexKind
.TextToken);
1923
return new RegexControlEscapeNode(backslashToken, typeToken, CreateMissingToken(
RegexKind
.TextToken));
1943
typeToken = typeToken.With(kind:
RegexKind
.TextToken).AddDiagnosticIfNone(new EmbeddedDiagnostic(
1972
if (_currentToken.Kind !=
RegexKind
.OpenBraceToken)
1983
if (_currentToken.Kind !=
RegexKind
.CloseBraceToken)
2006
return new RegexTextNode(token.With(kind:
RegexKind
.TextToken));
2012
current.Kind ==
RegexKind
.SimpleOptionsGrouping)
EmbeddedLanguages\RegularExpressions\RegexTree.cs (1)
17
ImmutableDictionary<int, TextSpan> captureNumbersToSpan) : EmbeddedSyntaxTree<
RegexKind
, RegexNode, RegexCompilationUnit>(text, root, diagnostics)