203 references to RegexKind
Microsoft.CodeAnalysis.Features (203)
EmbeddedLanguages\RegularExpressions\LanguageServices\RegexBraceMatcher.cs (3)
19using RegexToken = EmbeddedSyntaxToken<RegexKind>; 20using RegexTrivia = EmbeddedSyntaxTrivia<RegexKind>; 79if (trivia?.Kind != RegexKind.CommentTrivia)
EmbeddedLanguages\RegularExpressions\LanguageServices\RegexClassifier.cs (3)
19using RegexToken = EmbeddedSyntaxToken<RegexKind>; 20using RegexTrivia = EmbeddedSyntaxTrivia<RegexKind>; 97if (trivia.Kind == RegexKind.CommentTrivia &&
EmbeddedLanguages\RegularExpressions\LanguageServices\RegexDocumentHighlighter.cs (5)
20using RegexToken = EmbeddedSyntaxToken<RegexKind>; 88if (captureToken.Kind == RegexKind.NumberToken) 128if (node.Kind is RegexKind.BackreferenceEscape or 129RegexKind.CaptureEscape or 130RegexKind.KCaptureEscape)
EmbeddedLanguages\RegularExpressions\LanguageServices\RegexEmbeddedCompletionProvider.cs (4)
24using RegexToken = EmbeddedSyntaxToken<RegexKind>; 191case RegexKind.BackslashToken: 194case RegexKind.OpenBracketToken: 197case RegexKind.OpenParenToken:
EmbeddedLanguages\RegularExpressions\RegexHelpers.cs (6)
15using RegexToken = EmbeddedSyntaxToken<RegexKind>; 16using RegexTrivia = EmbeddedSyntaxTrivia<RegexKind>; 23public static RegexToken CreateToken(RegexKind kind, ImmutableArray<RegexTrivia> leadingTrivia, VirtualCharSequence virtualChars) 26public static RegexToken CreateMissingToken(RegexKind kind) 29public static RegexTrivia CreateTrivia(RegexKind kind, VirtualCharSequence virtualChars) 32public static RegexTrivia CreateTrivia(RegexKind kind, VirtualCharSequence virtualChars, ImmutableArray<EmbeddedDiagnostic> diagnostics)
EmbeddedLanguages\RegularExpressions\RegexLexer.cs (38)
19using RegexToken = EmbeddedSyntaxToken<RegexKind>; 20using RegexTrivia = EmbeddedSyntaxTrivia<RegexKind>; 35/// cref="RegexTextNode"/>s in a row (each containing a <see cref="RegexKind.TextToken"/> a 62return CreateToken(RegexKind.EndOfFile, trivia, VirtualCharSequence.Empty); 71private 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, 150return CreateTrivia(RegexKind.CommentTrivia, GetSubPatternToCurrentPos(start)); 168return CreateTrivia(RegexKind.CommentTrivia, GetSubPatternToCurrentPos(start), diagnostics); 172return CreateTrivia(RegexKind.CommentTrivia, GetSubPatternToCurrentPos(start)); 210return CreateTrivia(RegexKind.WhitespaceTrivia, GetSubPatternToCurrentPos(start)); 247var token = CreateToken(RegexKind.EscapeCategoryToken, [], GetSubPatternToCurrentPos(start)); 300var token = CreateToken(RegexKind.NumberToken, [], GetSubPatternToCurrentPos(start)); 331var token = CreateToken(RegexKind.CaptureNameToken, [], GetSubPatternToCurrentPos(start)); 349: CreateToken(RegexKind.OptionsToken, ImmutableArray<RegexTrivia>.Empty, GetSubPatternToCurrentPos(start)); 392RegexKind.TextToken, [], GetSubPatternToCurrentPos(start)); 453RegexKind.TextToken, [], GetSubPatternToCurrentPos(start));
EmbeddedLanguages\RegularExpressions\RegexNode.cs (2)
11internal abstract class RegexNode : EmbeddedSyntaxNode<RegexKind, RegexNode> 13protected RegexNode(RegexKind kind) : base(kind)
EmbeddedLanguages\RegularExpressions\RegexNodes.cs (6)
14using RegexNodeOrToken = EmbeddedSyntaxNodeOrToken<RegexKind, RegexNode>; 15using RegexToken = EmbeddedSyntaxToken<RegexKind>; 16using RegexAlternatingSequenceList = EmbeddedSeparatedSyntaxNodeList<RegexKind, RegexNode, RegexSequenceNode>; 21: base(RegexKind.CompilationUnit) 24Debug.Assert(endOfFileToken.Kind == RegexKind.EndOfFile); 57internal sealed class RegexSequenceNode(ImmutableArray<RegexExpressionNode> children) : RegexExpressionNode(RegexKind.Sequence)
EmbeddedLanguages\RegularExpressions\RegexParser.CaptureInfoAnalyzer.cs (7)
20using RegexToken = EmbeddedSyntaxToken<RegexKind>; 85case RegexKind.CaptureGrouping: 90case RegexKind.BalancingGrouping: 95case RegexKind.ConditionalExpressionGrouping: 104case RegexKind.SimpleGrouping: 108case RegexKind.NestedOptionsGrouping: 185if (token.Kind == RegexKind.NumberToken)
EmbeddedLanguages\RegularExpressions\RegexParser.cs (128)
21using RegexAlternatingSequenceList = EmbeddedSeparatedSyntaxNodeList<RegexKind, RegexNode, RegexSequenceNode>; 22using RegexNodeOrToken = EmbeddedSyntaxNodeOrToken<RegexKind, RegexNode>; 23using RegexToken = EmbeddedSyntaxToken<RegexKind>; 170Debug.Assert(_currentToken.Kind == RegexKind.EndOfFile); 268while (_currentToken.Kind == RegexKind.BarToken) 313if (current.Kind != RegexKind.Text) 361RegexKind.TextToken, startTextNode.TextToken.LeadingTrivia, 372if (next.Kind == RegexKind.Text) 398if (_currentToken.Kind == RegexKind.EndOfFile) 403if (_currentToken.Kind == RegexKind.BarToken) 408if (_currentToken.Kind == RegexKind.CloseParenToken) 419if (current.Kind == RegexKind.SimpleOptionsGrouping) 427RegexKind.AsteriskToken => ParseZeroOrMoreQuantifier(current), 428RegexKind.PlusToken => ParseOneOrMoreQuantifier(current), 429RegexKind.QuestionToken => ParseZeroOrOneQuantifier(current), 430RegexKind.OpenBraceToken => TryParseNumericQuantifier(current, _currentToken), 437if (_currentToken.Kind != RegexKind.QuestionToken) 523if (_currentToken.Kind == RegexKind.CommaToken) 555if (_currentToken.Kind != RegexKind.CloseBraceToken) 575RegexKind.DotToken => ParseWildcard(), 576RegexKind.CaretToken => ParseStartAnchor(), 577RegexKind.DollarToken => ParseEndAnchor(), 578RegexKind.BackslashToken => ParseEscape(_currentToken, allowTriviaAfterEnd: true), 579RegexKind.OpenBracketToken => ParseCharacterClass(), 580RegexKind.OpenParenToken => ParseGrouping(), 581RegexKind.CloseParenToken => ParseUnexpectedCloseParenToken(), 582RegexKind.OpenBraceToken => ParsePossibleUnexpectedNumericQuantifier(lastExpression), 583RegexKind.AsteriskToken or RegexKind.PlusToken or RegexKind.QuestionToken => ParseUnexpectedQuantifier(lastExpression), 593var openBraceToken = _currentToken.With(kind: RegexKind.TextToken); 611var token = _currentToken.With(kind: RegexKind.TextToken).AddDiagnosticIfNone( 627return new RegexTextNode(token.With(kind: RegexKind.TextToken)); 633return new RegexAnchorNode(RegexKind.EndAnchor, ConsumeCurrentToken(allowTrivia: true)); 639return new RegexAnchorNode(RegexKind.StartAnchor, ConsumeCurrentToken(allowTrivia: true)); 658case RegexKind.QuestionToken: 672case RegexKind.CloseParenToken: 677return CreateMissingToken(RegexKind.CloseParenToken).AddDiagnosticIfNone( 705=> token.Kind == RegexKind.EndOfFile 711return token.Kind == RegexKind.EndOfFile 731case RegexKind.LessThanToken: 735case RegexKind.SingleQuoteToken: 740case RegexKind.OpenParenToken: 744case RegexKind.ColonToken: 747case RegexKind.EqualsToken: 750case RegexKind.ExclamationToken: 753case RegexKind.GreaterThanToken: 757if (_currentToken.Kind != RegexKind.CloseParenToken) 789if (capture.Kind == RegexKind.NumberToken) 800if (_currentToken.Kind == RegexKind.CloseParenToken) 812innerCloseParenToken = CreateMissingToken(RegexKind.CloseParenToken); 833if (_currentToken.Kind != RegexKind.CloseParenToken) 862if (_currentToken.Kind != RegexKind.EndOfFile) 915Debug.Assert(_currentToken.Kind == RegexKind.OpenParenToken); 949case RegexKind.EqualsToken: 954case RegexKind.ExclamationToken: 983captureToken = CreateMissingToken(RegexKind.CaptureNameToken); 985if (_currentToken.Kind == RegexKind.MinusToken) 1003if (capture.Kind == RegexKind.NumberToken && (int)capture.Value == 0) 1013if (_currentToken.Kind == RegexKind.MinusToken) 1031if ((openToken.Kind == RegexKind.LessThanToken && _currentToken.Kind == RegexKind.GreaterThanToken) || 1032(openToken.Kind == RegexKind.SingleQuoteToken && _currentToken.Kind == RegexKind.SingleQuoteToken)) 1037if (_currentToken.Kind == RegexKind.EndOfFile) 1054openToken.Kind == RegexKind.LessThanToken 1055? RegexKind.GreaterThanToken : RegexKind.SingleQuoteToken); 1076secondCapture = CreateMissingToken(RegexKind.CaptureNameToken); 1100if (captureToken.Kind == RegexKind.NumberToken) 1149case RegexKind.CloseParenToken: 1156case RegexKind.ColonToken: 1162CreateMissingToken(RegexKind.CloseParenToken).AddDiagnosticIfNone( 1174=> currentToken.Kind == RegexKind.TextToken && currentToken.VirtualChars.Length == 1 && currentToken.VirtualChars[0].Value == ch; 1221Debug.Assert(openBracketToken.Kind == RegexKind.OpenBracketToken); 1222var caretToken = CreateMissingToken(RegexKind.CaretToken); 1223var closeBracketToken = CreateMissingToken(RegexKind.CloseBracketToken); 1227if (_currentToken.Kind == RegexKind.CaretToken) 1240while (_currentToken.Kind != RegexKind.EndOfFile) 1244if (_currentToken.Kind == RegexKind.CloseBracketToken && builder.Count > 0) 1275if (left.Kind is RegexKind.CharacterClassEscape or RegexKind.CategoryEscape || 1284if (_currentToken.Kind == RegexKind.MinusToken && !_lexer.IsAt("]")) 1289if (_currentToken.Kind == RegexKind.OpenBracketToken) 1340case RegexKind.SimpleEscape: 1345case RegexKind.ControlEscape: 1361case RegexKind.OctalEscape: 1365case RegexKind.HexEscape: 1369case RegexKind.UnicodeEscape: 1373case RegexKind.PosixProperty: 1379case RegexKind.Text: 1383case RegexKind.Sequence: 1474if (_currentToken.Kind == RegexKind.BackslashToken && _lexer.Position < _lexer.Text.Length) 1516backslashToken, ConsumeCurrentToken(allowTrivia: false).With(kind: RegexKind.TextToken)); 1532_currentToken.Kind == RegexKind.MinusToken && 1544if (!afterRangeMinus && _currentToken.Kind == RegexKind.OpenBracketToken && _lexer.IsAt(":")) 1555var token = CreateToken(RegexKind.TextToken, [], textChars); 1567Debug.Assert(_currentToken.Kind == RegexKind.OpenBracketToken); 1573ConsumeCurrentToken(allowTrivia: false).With(kind: RegexKind.TextToken)); 1580if (_currentToken.Kind is not RegexKind.CloseBracketToken and not RegexKind.EndOfFile) 1602if (_currentToken.Kind == RegexKind.EndOfFile) 1607return new RegexSimpleEscapeNode(backslashToken, CreateMissingToken(RegexKind.TextToken)); 1648if (_currentToken.Kind == RegexKind.EndOfFile) 1653return new RegexSimpleEscapeNode(backslashToken, CreateMissingToken(RegexKind.TextToken)); 1722RegexKind.NumberToken, [], 1784return new RegexSimpleEscapeNode(backslashToken, typeToken.With(kind: RegexKind.TextToken)); 1803openToken = CreateMissingToken(RegexKind.LessThanToken); 1804capture = CreateMissingToken(RegexKind.CaptureNameToken); 1805closeToken = CreateMissingToken(RegexKind.GreaterThanToken); 1811(_currentToken.Kind == RegexKind.LessThanToken || _currentToken.Kind == RegexKind.SingleQuoteToken)) 1822? CreateMissingToken(RegexKind.CaptureNameToken) 1827closeToken = CreateMissingToken(RegexKind.GreaterThanToken); 1830((openToken.Kind == RegexKind.LessThanToken && _currentToken.Kind == RegexKind.GreaterThanToken) || 1831(openToken.Kind == RegexKind.SingleQuoteToken && _currentToken.Kind == RegexKind.SingleQuoteToken))) 1876var typeToken = ConsumeCurrentToken(allowTrivia: allowTriviaAfterEnd).With(kind: RegexKind.TextToken); 1910if (_currentToken.Kind == RegexKind.EndOfFile) 1915return new RegexControlEscapeNode(backslashToken, typeToken, CreateMissingToken(RegexKind.TextToken)); 1947var controlToken = ConsumeCurrentToken(allowTrivia: allowTriviaAfterEnd).With(kind: RegexKind.TextToken); 1957return new RegexControlEscapeNode(backslashToken, typeToken, CreateMissingToken(RegexKind.TextToken)); 1977typeToken = typeToken.With(kind: RegexKind.TextToken).AddDiagnosticIfNone(new EmbeddedDiagnostic( 2006if (_currentToken.Kind != RegexKind.OpenBraceToken) 2017if (_currentToken.Kind != RegexKind.CloseBraceToken) 2040return new RegexTextNode(token.With(kind: RegexKind.TextToken)); 2046current.Kind == RegexKind.SimpleOptionsGrouping)
EmbeddedLanguages\RegularExpressions\RegexTree.cs (1)
19ImmutableDictionary<int, TextSpan> captureNumbersToSpan) : EmbeddedSyntaxTree<RegexKind, RegexNode, RegexCompilationUnit>(text, root, diagnostics)