0

我目前正在研究一种作为 C# 超集的语言。但是,我很难让词法分析器识别打开和关闭泛型类型括号,特别是在类似表达式中使用的打开类型表达式typeof(),例如typeof(List<List<>>).

如果我有三个规则:

OpenTriangleBracket
    :    '<'
    ;

CloseTriangleBracket
    :    '>'
    ;

Symbol
    :    ('>' | '<')+
    ;

正确识别以下类型的第 (1) 部分 ( <)。但是,第 (2) 部分被识别为符号 ( <>>)。通常,这将是可取的行为。如果它是一种类型,我希望它被识别为它的三个独立部分(<, >, >)。

List<List<>>
    v    ^v^
    1     2

我怎么能让它认出它呢?当我自己编写解析器部分时,我可以完全控制它的实现方式。

4

0 回答 0