识别泛型类型参数括号

时间:2012-08-22 19:32:24

标签: c# generics antlr lexer

我目前正在研究一种C#的超集语言。但是,我在尝试让词法分析器识别打开和关闭泛型类型括号时遇到了麻烦,特别是在类typeof()表达式中使用的打开类型表达式,例如typeof(List<List<>>)

如果我有三条规则:

OpenTriangleBracket
    :    '<'
    ;

CloseTriangleBracket
    :    '>'
    ;

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

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

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

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

0 个答案:

没有答案