145 references to StackFrameKind
Microsoft.CodeAnalysis.Features (145)
EmbeddedLanguages\StackFrame\StackFrameCompilationUnit.cs (3)
10using StackFrameNodeOrToken = EmbeddedSyntaxNodeOrToken<StackFrameKind, StackFrameNode>; 11using StackFrameToken = EmbeddedSyntaxToken<StackFrameKind>; 18internal sealed class StackFrameCompilationUnit(StackFrameMethodDeclarationNode methodDeclaration, StackFrameFileInformationNode? fileInformationExpression, StackFrameToken endOfLineToken) : StackFrameNode(StackFrameKind.CompilationUnit)
EmbeddedLanguages\StackFrame\StackFrameExtensions.cs (1)
10using StackFrameTrivia = EmbeddedSyntaxTrivia<StackFrameKind>;
EmbeddedLanguages\StackFrame\StackFrameLexer.cs (51)
18using StackFrameToken = EmbeddedSyntaxToken<StackFrameKind>; 19using StackFrameTrivia = EmbeddedSyntaxTrivia<StackFrameKind>; 78return CreateTrivia(StackFrameKind.SkippedTextTrivia, GetSubSequenceToCurrentPos(start)); 117StackFrameKind.IdentifierToken, 127return CreateToken(StackFrameKind.EndOfFrame, VirtualCharSequence.Empty); 141public bool ScanCurrentCharAsTokenIfMatch(StackFrameKind kind, out StackFrameToken token) 151public bool ScanCurrentCharAsTokenIfMatch(StackFrameKind kind, bool scanTrailingWhitespace, out StackFrameToken token) 177public bool ScanCurrentCharAsTokenIfMatch(Func<StackFrameKind, bool> isMatch, out StackFrameToken token) 194var result = TryScanStringTrivia(language.At, StackFrameKind.AtTrivia); 208var result = TryScanStringTrivia(language.In, StackFrameKind.InTrivia); 222var result = TryScanStringTrivia(language.Line, StackFrameKind.LineTrivia); 233/// Attempts to parse <see cref="StackFrameKind.InTrivia"/> and a path following https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#file-and-directory-names 282return CreateToken(StackFrameKind.PathToken, inTrivia.ToImmutableArray(), GetSubSequenceToCurrentPos(startPosition)); 286/// Returns a number token with the <see cref="StackFrameKind.LineTrivia"/> and remaining <see cref="StackFrameKind.SkippedTextTrivia"/> 323return CreateToken(StackFrameKind.NumberToken, GetSubSequenceToCurrentPos(start)); 351return CreateToken(StackFrameKind.GeneratedNameSeparatorToken, GetSubSequenceToCurrentPos(start)); 382return CreateToken(StackFrameKind.GeneratedNameSuffixToken, GetSubSequenceToCurrentPos(start)); 404public static StackFrameToken CreateToken(StackFrameKind kind, VirtualCharSequence virtualChars) 407public static StackFrameToken CreateToken(StackFrameKind kind, ImmutableArray<StackFrameTrivia> leadingTrivia, VirtualCharSequence virtualChars) 410public static StackFrameToken CreateToken(StackFrameKind kind, ImmutableArray<StackFrameTrivia> leadingTrivia, VirtualCharSequence virtualChars, ImmutableArray<StackFrameTrivia> trailingTrivia) 413private static StackFrameTrivia CreateTrivia(StackFrameKind kind, VirtualCharSequence virtualChars) 416private static StackFrameTrivia CreateTrivia(StackFrameKind kind, VirtualCharSequence virtualChars, ImmutableArray<EmbeddedDiagnostic> diagnostics) 454private StackFrameTrivia? TryScanStringTrivia(string valueToLookFor, StackFrameKind triviaKind) 467private StackFrameToken? TryScanStringToken(string valueToLookFor, StackFrameKind tokenKind) 494return CreateTrivia(StackFrameKind.WhitespaceTrivia, GetSubSequenceToCurrentPos(startPosition)); 502return TryScanStringToken(".ctor", StackFrameKind.ConstructorToken) ?? 503TryScanStringToken(".cctor", StackFrameKind.ConstructorToken); 506private static StackFrameKind GetKind(VirtualChar ch) 511'&' => StackFrameKind.AmpersandToken, 512'[' => StackFrameKind.OpenBracketToken, 513']' => StackFrameKind.CloseBracketToken, 514'(' => StackFrameKind.OpenParenToken, 515')' => StackFrameKind.CloseParenToken, 516'.' => StackFrameKind.DotToken, 517'+' => StackFrameKind.PlusToken, 518',' => StackFrameKind.CommaToken, 519':' => StackFrameKind.ColonToken, 520'=' => StackFrameKind.EqualsToken, 521'>' => StackFrameKind.GreaterThanToken, 522'<' => StackFrameKind.LessThanToken, 523'-' => StackFrameKind.MinusToken, 524'\'' => StackFrameKind.SingleQuoteToken, 525'`' => StackFrameKind.GraveAccentToken, 526'\\' => StackFrameKind.BackslashToken, 527'/' => StackFrameKind.ForwardSlashToken, 528'$' => StackFrameKind.DollarToken, 529'|' => StackFrameKind.PipeToken, 531? StackFrameKind.WhitespaceTrivia 533? StackFrameKind.NumberToken 534: StackFrameKind.SkippedTextTrivia
EmbeddedLanguages\StackFrame\StackFrameNodeDefinitions.cs (55)
14using StackFrameNodeOrToken = EmbeddedSyntaxNodeOrToken<StackFrameKind, StackFrameNode>; 15using StackFrameToken = EmbeddedSyntaxToken<StackFrameKind>; 17internal abstract class StackFrameNode : EmbeddedSyntaxNode<StackFrameKind, StackFrameNode> 19protected StackFrameNode(StackFrameKind kind) : base(kind) 28protected StackFrameDeclarationNode(StackFrameKind kind) : base(kind) 36StackFrameParameterList argumentList) : StackFrameDeclarationNode(StackFrameKind.MethodDeclaration) 62protected StackFrameTypeNode(StackFrameKind kind) : base(kind) 72/// is not a type then it should use <see cref="StackFrameToken"/> with <see cref="StackFrameKind.IdentifierToken"/> 77protected StackFrameNameNode(StackFrameKind kind) : base(kind) 89protected StackFrameSimpleNameNode(StackFrameToken identifier, StackFrameKind kind) : base(kind) 91Debug.Assert(identifier.Kind is StackFrameKind.IdentifierToken or StackFrameKind.ConstructorToken); 105public StackFrameQualifiedNameNode(StackFrameNameNode left, StackFrameToken dotToken, StackFrameSimpleNameNode right) : base(StackFrameKind.MemberAccess) 107Debug.Assert(dotToken.Kind == StackFrameKind.DotToken); 108Debug.Assert(left.Kind is not StackFrameKind.Constructor); 131/// The simplest identifier node, which wraps a <see cref="StackFrameKind.IdentifierToken" /> 133internal sealed class StackFrameIdentifierNameNode(StackFrameToken identifier) : StackFrameSimpleNameNode(identifier, StackFrameKind.TypeIdentifier) 148internal sealed class StackFrameConstructorNode(StackFrameToken constructor) : StackFrameSimpleNameNode(constructor, StackFrameKind.Constructor) 169/// The "`" token in arity identifiers. Must be <see cref="StackFrameKind.GraveAccentToken"/> 178: base(identifier, StackFrameKind.GenericTypeIdentifier) 180Debug.Assert(graveAccentToken.Kind == StackFrameKind.GraveAccentToken); 181Debug.Assert(numberToken.Kind == StackFrameKind.NumberToken); 202protected StackFrameGeneratedNameNode(StackFrameToken identifier, StackFrameKind kind) : base(identifier, kind) 220: base(identifier, StackFrameKind.GeneratedIdentifier) 222Debug.Assert(lessThanToken.Kind == StackFrameKind.LessThanToken); 223Debug.Assert(greaterThanToken.Kind == StackFrameKind.GreaterThanToken); 224Debug.Assert(!dollarToken.HasValue || dollarToken.Value.Kind == StackFrameKind.DollarToken); 271: base(identifier, StackFrameKind.LocalMethodIdentifier) 273Debug.Assert(generatedNameSeparator.Kind == StackFrameKind.GeneratedNameSeparatorToken); 274Debug.Assert(identifier.Kind == StackFrameKind.IdentifierToken); 275Debug.Assert(pipeToken.Kind == StackFrameKind.PipeToken); 276Debug.Assert(suffix.Kind == StackFrameKind.GeneratedNameSuffixToken); 323public StackFrameArrayTypeNode(StackFrameNameNode typeIdentifier, ImmutableArray<StackFrameArrayRankSpecifier> arrayRankSpecifiers) : base(StackFrameKind.ArrayTypeExpression) 350: base(StackFrameKind.ArrayExpression) 353Debug.Assert(openBracket.Kind == StackFrameKind.OpenBracketToken); 354Debug.Assert(closeBracket.Kind == StackFrameKind.CloseBracketToken); 355Debug.Assert(commaTokens.All(static t => t.Kind == StackFrameKind.CommaToken)); 397public readonly EmbeddedSeparatedSyntaxNodeList<StackFrameKind, StackFrameNode, StackFrameIdentifierNameNode> TypeArguments; 402EmbeddedSeparatedSyntaxNodeList<StackFrameKind, StackFrameNode, StackFrameIdentifierNameNode> typeArguments, 404: base(StackFrameKind.TypeArgument) 406Debug.Assert(openToken.Kind is StackFrameKind.OpenBracketToken or StackFrameKind.LessThanToken); 408Debug.Assert(openToken.Kind == StackFrameKind.OpenBracketToken ? closeToken.Kind == StackFrameKind.CloseBracketToken : closeToken.Kind == StackFrameKind.GreaterThanToken); 450: base(StackFrameKind.Parameter) 452Debug.Assert(identifier.Kind == StackFrameKind.IdentifierToken); 472public readonly EmbeddedSeparatedSyntaxNodeList<StackFrameKind, StackFrameNode, StackFrameParameterDeclarationNode> Parameters; 477EmbeddedSeparatedSyntaxNodeList<StackFrameKind, StackFrameNode, StackFrameParameterDeclarationNode> parameters, 479: base(StackFrameKind.ParameterList) 481Debug.Assert(openToken.Kind == StackFrameKind.OpenParenToken); 482Debug.Assert(closeToken.Kind == StackFrameKind.CloseParenToken); 519public StackFrameFileInformationNode(StackFrameToken path, StackFrameToken? colon, StackFrameToken? line) : base(StackFrameKind.FileInformation) 521Debug.Assert(path.Kind == StackFrameKind.PathToken); 523Debug.Assert(!line.HasValue || line.Value.Kind == StackFrameKind.NumberToken);
EmbeddedLanguages\StackFrame\StackFrameParser.cs (34)
15using StackFrameNodeOrToken = EmbeddedSyntaxNodeOrToken<StackFrameKind, StackFrameNode>; 16using StackFrameToken = EmbeddedSyntaxToken<StackFrameKind>; 90Contract.ThrowIfFalse(eolToken.Kind == StackFrameKind.EndOfFrame); 188if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.DotToken, out var dotToken)) 193if (lhs.Kind is StackFrameKind.Constructor || 194lhs is StackFrameQualifiedNameNode { Right.Kind: StackFrameKind.Constructor }) 255if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.LessThanToken, out var lessThanToken)) 260if (_lexer.CurrentCharAsToken().Kind == StackFrameKind.LessThanToken) 273if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.GreaterThanToken, out var greaterThanToken)) 278if (_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.DollarToken, out var dollarToken)) 303if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.PipeToken, out var suffixSeparator)) 334if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.GraveAccentToken, out var graveAccentToken)) 336if (identifierToken.Kind == StackFrameKind.ConstructorToken) 365kind => kind is StackFrameKind.OpenBracketToken or StackFrameKind.LessThanToken, 371var closeBracketKind = openToken.Kind is StackFrameKind.OpenBracketToken 372? StackFrameKind.CloseBracketToken 373: StackFrameKind.GreaterThanToken; 379while (currentIdentifier.HasValue && currentIdentifier.Value.Kind == StackFrameKind.IdentifierToken) 388if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.CommaToken, out var commaToken)) 407var separatedList = new EmbeddedSeparatedSyntaxNodeList<StackFrameKind, StackFrameNode, StackFrameIdentifierNameNode>(builder.ToImmutable()); 421if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.OpenParenToken, scanTrailingWhitespace: true, out var openParen)) 426if (_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.CloseParenToken, out var closeParen)) 428return new(openParen, EmbeddedSeparatedSyntaxNodeList<StackFrameKind, StackFrameNode, StackFrameParameterDeclarationNode>.Empty, closeParen); 444if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.CommaToken, out var commaToken)) 452if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.CloseParenToken, out closeParen)) 457var parameters = new EmbeddedSeparatedSyntaxNodeList<StackFrameKind, StackFrameNode, StackFrameParameterDeclarationNode>(builder.ToImmutable()); 476if (CurrentCharAsToken().Kind == StackFrameKind.OpenBracketToken) 510if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.OpenBracketToken, scanTrailingWhitespace: true, out var openBracket)) 515while (_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.CommaToken, scanTrailingWhitespace: true, out var commaToken)) 520if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.CloseBracketToken, scanTrailingWhitespace: true, out var closeBracket)) 544if (path.Kind == StackFrameKind.None) 549if (!_lexer.ScanCurrentCharAsTokenIfMatch(StackFrameKind.ColonToken, out var colonToken))
EmbeddedLanguages\StackFrame\StackFrameTree.cs (1)
10internal sealed class StackFrameTree(VirtualCharSequence text, StackFrameCompilationUnit root) : EmbeddedSyntaxTree<StackFrameKind, StackFrameNode, StackFrameCompilationUnit>(text, root, [])