Antlr 令牌定义和lexer令牌之间的区别

Antlr 令牌定义和lexer令牌之间的区别,antlr,Antlr,在tokens块中定义令牌和将令牌定义为lexer索引有什么区别?lexer令牌是antlr通过解析特定字符组合生成的令牌,例如: fragment F_W : (' '|'\t'|'\r'|'\n'|'\f')* ; 然而,令牌块中的令牌是用户为了解析的好处而创建的可视令牌;它们没有到一组字符序列的直接映射。比如说, tokens { BLOCK; } 为您提供一个可视令牌块,您可以将其放在块规则之前或之上,以标记子任务会话是如下所示的块规则: block: '{' exp

在tokens块中定义令牌和将令牌定义为lexer索引有什么区别?

lexer令牌是antlr通过解析特定字符组合生成的令牌,例如:

fragment
F_W :   (' '|'\t'|'\r'|'\n'|'\f')*
    ;
然而,令牌块中的令牌是用户为了解析的好处而创建的可视令牌;它们没有到一组字符序列的直接映射。比如说,

tokens { BLOCK; } 
为您提供一个可视令牌块,您可以将其放在块规则之前或之上,以标记子任务会话是如下所示的块规则:

block: 
'{' expression* '}' ->
 BLOCK^ expression*
;