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)
19
using RegexToken = EmbeddedSyntaxToken<
RegexKind
>;
20
using RegexTrivia = EmbeddedSyntaxTrivia<
RegexKind
>;
35
/// cref="RegexTextNode"/>s in a row (each containing a <see cref="
RegexKind
.TextToken"/> a
62
return CreateToken(
RegexKind
.EndOfFile, trivia, VirtualCharSequence.Empty);
71
private static
RegexKind
GetKind(VirtualChar ch)
74
'|' =>
RegexKind
.BarToken,
75
'*' =>
RegexKind
.AsteriskToken,
76
'+' =>
RegexKind
.PlusToken,
77
'?' =>
RegexKind
.QuestionToken,
78
'{' =>
RegexKind
.OpenBraceToken,
79
'}' =>
RegexKind
.CloseBraceToken,
80
'\\' =>
RegexKind
.BackslashToken,
81
'[' =>
RegexKind
.OpenBracketToken,
82
']' =>
RegexKind
.CloseBracketToken,
83
'.' =>
RegexKind
.DotToken,
84
'^' =>
RegexKind
.CaretToken,
85
'$' =>
RegexKind
.DollarToken,
86
'(' =>
RegexKind
.OpenParenToken,
87
')' =>
RegexKind
.CloseParenToken,
88
',' =>
RegexKind
.CommaToken,
89
':' =>
RegexKind
.ColonToken,
90
'=' =>
RegexKind
.EqualsToken,
91
'!' =>
RegexKind
.ExclamationToken,
92
'<' =>
RegexKind
.LessThanToken,
93
'>' =>
RegexKind
.GreaterThanToken,
94
'-' =>
RegexKind
.MinusToken,
95
'\'' =>
RegexKind
.SingleQuoteToken,
96
_ =>
RegexKind
.TextToken,
150
return CreateTrivia(
RegexKind
.CommentTrivia, GetSubPatternToCurrentPos(start));
168
return CreateTrivia(
RegexKind
.CommentTrivia, GetSubPatternToCurrentPos(start), diagnostics);
172
return CreateTrivia(
RegexKind
.CommentTrivia, GetSubPatternToCurrentPos(start));
210
return CreateTrivia(
RegexKind
.WhitespaceTrivia, GetSubPatternToCurrentPos(start));
242
var token = CreateToken(
RegexKind
.EscapeCategoryToken, [], GetSubPatternToCurrentPos(start));
296
var token = CreateToken(
RegexKind
.NumberToken, [], GetSubPatternToCurrentPos(start));
327
var token = CreateToken(
RegexKind
.CaptureNameToken, [], GetSubPatternToCurrentPos(start));
345
: CreateToken(
RegexKind
.OptionsToken, ImmutableArray<RegexTrivia>.Empty, GetSubPatternToCurrentPos(start));
388
RegexKind
.TextToken, [], GetSubPatternToCurrentPos(start));
449
RegexKind
.TextToken, [], GetSubPatternToCurrentPos(start));
EmbeddedLanguages\RegularExpressions\RegexNode.cs (2)
11
internal abstract class RegexNode : EmbeddedSyntaxNode<
RegexKind
, RegexNode>
13
protected RegexNode(
RegexKind
kind) : base(kind)
EmbeddedLanguages\RegularExpressions\RegexNodes.cs (6)
14
using RegexNodeOrToken = EmbeddedSyntaxNodeOrToken<
RegexKind
, RegexNode>;
15
using RegexToken = EmbeddedSyntaxToken<
RegexKind
>;
16
using RegexAlternatingSequenceList = EmbeddedSeparatedSyntaxNodeList<
RegexKind
, RegexNode, RegexSequenceNode>;
21
: base(
RegexKind
.CompilationUnit)
24
Debug.Assert(endOfFileToken.Kind ==
RegexKind
.EndOfFile);
57
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)
21
using RegexAlternatingSequenceList = EmbeddedSeparatedSyntaxNodeList<
RegexKind
, RegexNode, RegexSequenceNode>;
22
using RegexNodeOrToken = EmbeddedSyntaxNodeOrToken<
RegexKind
, RegexNode>;
23
using RegexToken = EmbeddedSyntaxToken<
RegexKind
>;
170
Debug.Assert(_currentToken.Kind ==
RegexKind
.EndOfFile);
268
while (_currentToken.Kind ==
RegexKind
.BarToken)
313
if (current.Kind !=
RegexKind
.Text)
361
RegexKind
.TextToken, startTextNode.TextToken.LeadingTrivia,
372
if (next.Kind ==
RegexKind
.Text)
398
if (_currentToken.Kind ==
RegexKind
.EndOfFile)
403
if (_currentToken.Kind ==
RegexKind
.BarToken)
408
if (_currentToken.Kind ==
RegexKind
.CloseParenToken)
419
if (current.Kind ==
RegexKind
.SimpleOptionsGrouping)
427
RegexKind
.AsteriskToken => ParseZeroOrMoreQuantifier(current),
428
RegexKind
.PlusToken => ParseOneOrMoreQuantifier(current),
429
RegexKind
.QuestionToken => ParseZeroOrOneQuantifier(current),
430
RegexKind
.OpenBraceToken => TryParseNumericQuantifier(current, _currentToken),
437
if (_currentToken.Kind !=
RegexKind
.QuestionToken)
523
if (_currentToken.Kind ==
RegexKind
.CommaToken)
555
if (_currentToken.Kind !=
RegexKind
.CloseBraceToken)
575
RegexKind
.DotToken => ParseWildcard(),
576
RegexKind
.CaretToken => ParseStartAnchor(),
577
RegexKind
.DollarToken => ParseEndAnchor(),
578
RegexKind
.BackslashToken => ParseEscape(_currentToken, allowTriviaAfterEnd: true),
579
RegexKind
.OpenBracketToken => ParseCharacterClass(),
580
RegexKind
.OpenParenToken => ParseGrouping(inConditionalExpression: false),
581
RegexKind
.CloseParenToken => ParseUnexpectedCloseParenToken(),
582
RegexKind
.OpenBraceToken => ParsePossibleUnexpectedNumericQuantifier(lastExpression),
583
RegexKind
.AsteriskToken or
RegexKind
.PlusToken or
RegexKind
.QuestionToken => ParseUnexpectedQuantifier(lastExpression),
593
var openBraceToken = _currentToken.With(kind:
RegexKind
.TextToken);
611
var token = _currentToken.With(kind:
RegexKind
.TextToken).AddDiagnosticIfNone(
627
return new RegexTextNode(token.With(kind:
RegexKind
.TextToken));
633
return new RegexAnchorNode(
RegexKind
.EndAnchor, ConsumeCurrentToken(allowTrivia: true));
639
return new RegexAnchorNode(
RegexKind
.StartAnchor, ConsumeCurrentToken(allowTrivia: true));
658
case
RegexKind
.QuestionToken:
672
case
RegexKind
.CloseParenToken:
677
return CreateMissingToken(
RegexKind
.CloseParenToken).AddDiagnosticIfNone(
705
=> token.Kind ==
RegexKind
.EndOfFile
711
return token.Kind ==
RegexKind
.EndOfFile
734
case
RegexKind
.LessThanToken:
738
case
RegexKind
.SingleQuoteToken:
743
case
RegexKind
.OpenParenToken:
747
case
RegexKind
.ColonToken:
750
case
RegexKind
.EqualsToken:
753
case
RegexKind
.ExclamationToken:
756
case
RegexKind
.GreaterThanToken:
760
if (_currentToken.Kind !=
RegexKind
.CloseParenToken)
792
if (capture.Kind ==
RegexKind
.NumberToken)
803
if (_currentToken.Kind ==
RegexKind
.CloseParenToken)
815
innerCloseParenToken = CreateMissingToken(
RegexKind
.CloseParenToken);
836
if (_currentToken.Kind !=
RegexKind
.CloseParenToken)
865
if (_currentToken.Kind !=
RegexKind
.EndOfFile)
918
Debug.Assert(_currentToken.Kind ==
RegexKind
.OpenParenToken);
952
case
RegexKind
.EqualsToken:
957
case
RegexKind
.ExclamationToken:
986
captureToken = CreateMissingToken(
RegexKind
.CaptureNameToken);
988
if (_currentToken.Kind ==
RegexKind
.MinusToken)
1006
if (capture.Kind ==
RegexKind
.NumberToken && (int)capture.Value == 0)
1016
if (_currentToken.Kind ==
RegexKind
.MinusToken)
1034
if ((openToken.Kind ==
RegexKind
.LessThanToken && _currentToken.Kind ==
RegexKind
.GreaterThanToken) ||
1035
(openToken.Kind ==
RegexKind
.SingleQuoteToken && _currentToken.Kind ==
RegexKind
.SingleQuoteToken))
1040
if (_currentToken.Kind ==
RegexKind
.EndOfFile)
1057
openToken.Kind ==
RegexKind
.LessThanToken
1058
?
RegexKind
.GreaterThanToken :
RegexKind
.SingleQuoteToken);
1079
secondCapture = CreateMissingToken(
RegexKind
.CaptureNameToken);
1103
if (captureToken.Kind ==
RegexKind
.NumberToken)
1152
case
RegexKind
.CloseParenToken:
1159
case
RegexKind
.ColonToken:
1165
CreateMissingToken(
RegexKind
.CloseParenToken).AddDiagnosticIfNone(
1177
=> currentToken.Kind ==
RegexKind
.TextToken && currentToken.VirtualChars.Length == 1 && currentToken.VirtualChars[0].Value == ch;
1224
Debug.Assert(openBracketToken.Kind ==
RegexKind
.OpenBracketToken);
1225
var caretToken = CreateMissingToken(
RegexKind
.CaretToken);
1226
var closeBracketToken = CreateMissingToken(
RegexKind
.CloseBracketToken);
1230
if (_currentToken.Kind ==
RegexKind
.CaretToken)
1243
while (_currentToken.Kind !=
RegexKind
.EndOfFile)
1247
if (_currentToken.Kind ==
RegexKind
.CloseBracketToken && builder.Count > 0)
1278
if (left.Kind is
RegexKind
.CharacterClassEscape or
RegexKind
.CategoryEscape ||
1287
if (_currentToken.Kind ==
RegexKind
.MinusToken && !_lexer.IsAt("]"))
1292
if (_currentToken.Kind ==
RegexKind
.OpenBracketToken)
1343
case
RegexKind
.SimpleEscape:
1348
case
RegexKind
.ControlEscape:
1364
case
RegexKind
.OctalEscape:
1368
case
RegexKind
.HexEscape:
1372
case
RegexKind
.UnicodeEscape:
1376
case
RegexKind
.Text:
1380
case
RegexKind
.Sequence:
1471
if (_currentToken.Kind ==
RegexKind
.BackslashToken && _lexer.Position < _lexer.Text.Length)
1513
backslashToken, ConsumeCurrentToken(allowTrivia: false).With(kind:
RegexKind
.TextToken));
1529
_currentToken.Kind ==
RegexKind
.MinusToken &&
1540
ConsumeCurrentToken(allowTrivia: false).With(kind:
RegexKind
.TextToken));
1547
if (_currentToken.Kind is not
RegexKind
.CloseBracketToken and not
RegexKind
.EndOfFile)
1569
if (_currentToken.Kind ==
RegexKind
.EndOfFile)
1574
return new RegexSimpleEscapeNode(backslashToken, CreateMissingToken(
RegexKind
.TextToken));
1615
if (_currentToken.Kind ==
RegexKind
.EndOfFile)
1620
return new RegexSimpleEscapeNode(backslashToken, CreateMissingToken(
RegexKind
.TextToken));
1689
RegexKind
.NumberToken, [],
1751
return new RegexSimpleEscapeNode(backslashToken, typeToken.With(kind:
RegexKind
.TextToken));
1770
openToken = CreateMissingToken(
RegexKind
.LessThanToken);
1771
capture = CreateMissingToken(
RegexKind
.CaptureNameToken);
1772
closeToken = CreateMissingToken(
RegexKind
.GreaterThanToken);
1778
(_currentToken.Kind ==
RegexKind
.LessThanToken || _currentToken.Kind ==
RegexKind
.SingleQuoteToken))
1789
? CreateMissingToken(
RegexKind
.CaptureNameToken)
1794
closeToken = CreateMissingToken(
RegexKind
.GreaterThanToken);
1797
((openToken.Kind ==
RegexKind
.LessThanToken && _currentToken.Kind ==
RegexKind
.GreaterThanToken) ||
1798
(openToken.Kind ==
RegexKind
.SingleQuoteToken && _currentToken.Kind ==
RegexKind
.SingleQuoteToken)))
1843
var typeToken = ConsumeCurrentToken(allowTrivia: allowTriviaAfterEnd).With(kind:
RegexKind
.TextToken);
1877
if (_currentToken.Kind ==
RegexKind
.EndOfFile)
1882
return new RegexControlEscapeNode(backslashToken, typeToken, CreateMissingToken(
RegexKind
.TextToken));
1914
var controlToken = ConsumeCurrentToken(allowTrivia: allowTriviaAfterEnd).With(kind:
RegexKind
.TextToken);
1924
return new RegexControlEscapeNode(backslashToken, typeToken, CreateMissingToken(
RegexKind
.TextToken));
1944
typeToken = typeToken.With(kind:
RegexKind
.TextToken).AddDiagnosticIfNone(new EmbeddedDiagnostic(
1973
if (_currentToken.Kind !=
RegexKind
.OpenBraceToken)
1984
if (_currentToken.Kind !=
RegexKind
.CloseBraceToken)
2007
return new RegexTextNode(token.With(kind:
RegexKind
.TextToken));
2013
current.Kind ==
RegexKind
.SimpleOptionsGrouping)
EmbeddedLanguages\RegularExpressions\RegexTree.cs (1)
19
ImmutableDictionary<int, TextSpan> captureNumbersToSpan) : EmbeddedSyntaxTree<
RegexKind
, RegexNode, RegexCompilationUnit>(text, root, diagnostics)