Roslyn 一
"Roslyn" .NET 编译器平台 (github.com/dotnet/roslyn) ,提供包含丰富代码分析 API 的开放源代码跨平台编译器。可以使用 Roslyn API 在不同 OS 上执行许多与代码相关的操作,如代码分析、代码生成和编译。
可以通过从 Microsoft.CodeAnalysis 层次结构安装一些 NuGet 包来使用 Roslyn API。
概览
一. Roslyn API
一. Syntax
Syntax API 提供syntax trees(语法树) 是编译器能理解语言(c#/VB),语法树对语言保持了完整的保真度,包含空格和注释。语法树是不可变的,一旦创建就不能更改,也意味着不需要考虑并发同步锁等问题。
四个构建块:
- Microsoft.CodeAnalysis.SyntaxTree 类,它的实例代表整个分析树
- Microsoft.CodeAnalysis.SyntaxNode 类,它的实例表示声明、语句、子句和表达式等语法构造。(VS:标识蓝色)
- Microsoft.CodeAnalysis.SyntaxToken 结构,它代表独立的关键词、标识符、运算符或标点。(VS:标识绿色)
- Microsoft.CodeAnalysis.SyntaxTrivia 结构,它代表语法上不重要的信息,例如标记、预处理指令和注释之间的空格。(VS:标识红色)
备注
Sharplab 可以查看roslyn树
本文基本来源msdn