假设我有两条规则如下:
printable_characters : '\u0020' .. '\uFFEF' ;
newline_characters : '\n' | '\r' ;
现在让我们说我想制作一个名为printable_no_newlines
的新规则。我想通过从newline_characters
中减去printable_characters
来做到这一点:
printable_no_newlines : printable_characters - newline_characters ;
该语法在ANTLR3中不起作用,但有没有人知道在不重新输入整个规则的情况下模拟这种语法的最佳方法是什么?
答案 0 :(得分:1)
我不认为这是可能的。我也怀疑它会做你想做的事情:例如,你的printable_new_newlines
会包含"foo\nbar"
,因为它与printable_characters
匹配,但与newline_characters
不匹配(如只匹配一个字符的字符串。)