C# · 12月 29, 2021

c# – 解析通用类型时,区分“>>”和“>”

我的第一个Stack Overflow问题.

我一直很好奇这个.

假设您正在解析以下代码行:

List<Nullable<int>> list = new List<Nullable<int>>();

当解析时,一个天真的标记器将假定两个直角括号是单个“右移”标记.我没有用C语言的任何其他语言建构来解决这个问题.

现代解析器如何处理?使用这样的“贪心解析”有没有解决办法?

我已经想到在分析器中使用堆栈结构,在分析通用类型时特别处理这些令牌.我不知道在编写代码编辑器时会有多好.

万分感谢!