我需要属于 SyntaxToken 的 SyntaxKind 的详尽列表,以及属于 SyntaxNode 的 SyntaxKind 列表。原因是因为SyntaxKind不仅包含属于SyntaxToken的种类,还包含属于SyntaxNode的种类,而我不知道如何区分它们。我需要该列表,因为我想知道 SyntaxToken 的所有可能类型以及 SyntaxNode 的所有可能类型。例如,PublicKeyword 类型属于 SyntaxToken,ClassDeclaration 类型属于 SyntaxNode,并且它们都在 SyntaxKind 中。
我需要 Roslyn 版本 3.11.0 (C#9.0) 和版本 4.9.2 (C#12.0) 的列表。谁能帮我解决这个问题吗?预先感谢您。
我尝试搜索但找不到。
感谢 C# Discord 中的 DoctorKrolic 给出的答案。
IsAnyToken(SyntaxKind)
类中有方法Microsoft.CodeAnalysis.CSharp.SyntaxFacts
。该方法在文档中没有任何描述,但看起来当 SyntaxKind 参数属于 SyntaxToken 时该方法返回 true,否则返回 false。我可以使用该方法通过循环 SyntaxKind 枚举来生成属于 SyntaxToken 的 SyntaxKind 列表,并使用 IsAnyToken 检查它是否属于 SyntaxToken。没有出现在生成列表中的 SyntaxKind 表示它属于 SyntaxNode。