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