更改 ANTLR4 词法分析器中的标记值
Changing token value in ANTLR4 lexer
我正在尝试在 ANTLR4 中解析一种就标识符而言不区分大小写的语言。如果可能的话,我想把它推到词法分析器上,比如:
IDENT : [a-zA-Z]+ { /* set token = token.toUpper() */ }
除了我在文档中找不到任何可以让我在词法分析器操作中更改标记值的内容,并且查看生成的代码,它看起来不像在词法分析器操作中公开任何允许这样做的内容.
我是不是遗漏了什么或者我需要在应用程序代码中处理这个问题?
你可以这样做:
IDENT : [a-zA-Z]+ { setText(getText().toUpperCase()); };
好像是建议的方式,类似的例子是here
我正在尝试在 ANTLR4 中解析一种就标识符而言不区分大小写的语言。如果可能的话,我想把它推到词法分析器上,比如:
IDENT : [a-zA-Z]+ { /* set token = token.toUpper() */ }
除了我在文档中找不到任何可以让我在词法分析器操作中更改标记值的内容,并且查看生成的代码,它看起来不像在词法分析器操作中公开任何允许这样做的内容.
我是不是遗漏了什么或者我需要在应用程序代码中处理这个问题?
你可以这样做:
IDENT : [a-zA-Z]+ { setText(getText().toUpperCase()); };
好像是建议的方式,类似的例子是here