Roslyn 语法树中的各种语法节点及每个节点的含义

使用 Roslyn 进行源码分析时,我们会对很多不同种类的语法节点进行分析。如果能够一次性了解到各种不同种类的语法节点,并明白其含义和结构,那么在源码分析的过程中将会更加得心应手。

本文将介绍 Roslyn 中各种不同的语法节点、每个节点的含义,以及这些节点之间的关系和语法树结构。


基本概念

using System;

namespace Walterlv.Demo
{
   
    class Program
    {
   
        static void Main(string[] args)
        {
            Console.WriteLine("Hello Walterlv!");
        }
    }
}

以上是一个非常简单但完整的 .cs 文件。

在 Roslyn 的解析中,这就是一个“编译单元”(Compilation Unit)。编译单元是 Roslyn 语法树的根节点。紧接着的 using System 是 using 指令(Using Directives);随后是命名空间声明(Namespace Declaration),包含子节点类型声明(Class Declaration);类型声明包含子节点方法声明(Method Declaration)。

接下来,我们会介绍 Roslyn 语法树中各种不同种类的节点,以及其含义。

语法节点

语法树

CompilationUnit,是语法树的根节点。

关键字

UsingKeywordNamespaceKeywordPublicKeywordInternalKeywordPrivateKeywordProtectedKeywordStaticKeywordClassKeywordInterfaceKeywordStructKeyword

分别是 C# 的各种关键字:using, namespace, public, internal, private, protected, static, class, interface, struct

InKeywordOutKeywordRefKeywordReturnKeywordConstKeywordDefaultKeyword

分别是 C# 的另一波关键字 inout<

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值