Antlr4 regex置评

Antlr4 regex置评,antlr4,Antlr4,我用antlr创建了一种语言,但我对注释正则表达式有问题。在我的语言中,一行的注释以“$$”开头,多行的注释以“$$”开头,以“$$”结尾。我曾经 低于正则表达式 COMMENT : '$$'.*?'$$' -> skip; LINE_COMMENT : '$$'.*?'\n' -> skip; 但有时无法正常工作。假设输入包含两行注释(在单独的行上)。第一条规则匹配从第一行的第一个“$$”到下一行的第二个“$$”的字符范围,因此lexer错误地返回一个块注释。我建议您像其他语言一

我用antlr创建了一种语言,但我对注释正则表达式有问题。在我的语言中,一行的注释以“$$”开头,多行的注释以“$$”开头,以“$$”结尾。我曾经 低于正则表达式

COMMENT : '$$'.*?'$$' -> skip;
LINE_COMMENT : '$$'.*?'\n' -> skip;

但有时无法正常工作。

假设输入包含两行注释(在单独的行上)。第一条规则匹配从第一行的第一个“$$”到下一行的第二个“$$”的字符范围,因此lexer错误地返回一个块注释。我建议您像其他语言一样,为块注释提供其他分隔符。或者,如果您确实想保留“$$”,则需要在块注释中添加一个谓词,以指示何时应将输入视为行注释。请注意,这些模式不是正则表达式,即使它们与正则表达式语言共享一些词汇!