Antlr4 在规则定义中指定方法,以便可以识别某个字符类

Antlr4 在规则定义中指定方法,以便可以识别某个字符类,antlr4,Antlr4,当您为ANTLR编写lexer语法时,是否可以指定一个方法来决定读取字符是否应该被规则接受 例如: WS : x = . [ only accept, iff Character.isWhitespace($x.text[0])==true] -> skip 是的,使用语义谓词: WS : . {Character.isWhitespace(getText().charAt(0))}? -> skip ; 但不会很快。

当您为ANTLR编写lexer语法时,是否可以指定一个方法来决定读取字符是否应该被规则接受

例如:

WS  :   x = . [ only accept, iff Character.isWhitespace($x.text[0])==true] -> skip

是的,使用语义谓词:

WS : . {Character.isWhitespace(getText().charAt(0))}?
     -> skip
   ;
但不会很快。