更改ANTLR4 lexer中的令牌值

更改ANTLR4 lexer中的令牌值,antlr4,Antlr4,我正在尝试解析ANTLR4中的一种语言,就标识符而言,它是不区分大小写的。如果可能的话,我想把它推到lexer上,比如: 标识:[a-zA-Z]+{/*设置令牌=token.toUpper*/} 除了我在文档中找不到任何允许我在lexer操作中更改令牌值的内容,并且查看生成的代码,看起来lexer操作中没有任何公开的内容允许这样做 我是否遗漏了一些内容,或者我需要在应用程序代码中处理这些内容?您可以这样做: IDENT : [a-zA-Z]+ { setText(getText().toUppe

我正在尝试解析ANTLR4中的一种语言,就标识符而言,它是不区分大小写的。如果可能的话,我想把它推到lexer上,比如:

标识:[a-zA-Z]+{/*设置令牌=token.toUpper*/}

除了我在文档中找不到任何允许我在lexer操作中更改令牌值的内容,并且查看生成的代码,看起来lexer操作中没有任何公开的内容允许这样做


我是否遗漏了一些内容,或者我需要在应用程序代码中处理这些内容?

您可以这样做:

IDENT : [a-zA-Z]+ { setText(getText().toUpperCase()); };

这似乎是建议的方法,类似的例子是

使用C,在本例中,它是一个属性文本,而不是Cized SetText方法。