gpt4 book ai didi

unicode - 如何在Antlr中匹配Unicode字符

转载 作者:行者123 更新时间:2023-12-03 13:49:13 24 4
gpt4 key购买 nike

我正在尝试挑选文本中的所有标记,并且需要匹配所有的Ascii和Unicode字符,所以这是我将它们布置的方式。

fragment CHAR     :  ('A'..'Z') | ('a'..'z');
fragment DIGIT : ('0'..'9');
fragment UNICODE : '\u0000'..'\u00FF';

现在,如果我将 token 规则写为:
TOKEN  :  (CHAR|DIGIT|UNICODE)+;

我得到“决策可以匹配输入,例如“'A'..'Z'”,它使用多种选择:1、3
结果,该输入的替代项3被禁用”
“决策可以使用多种选择来匹配输入,例如“'0'..'9'”:2,3
结果,该输入的替代项3被禁用”

没有任何匹配:
而且如果我写成
TOKEN  :  (UNICODE)+;

没有什么比拟的。

有没有办法做到这一点。

最佳答案

如果您打算使用Unicode,则需要考虑的另一件事是,您应该设置charvocabulary选项,以表示您希望允许Unicode范围从0到FFFE的任何字符。

options
{
charVocabulary='\u0000'..'\uFFFE';
}

您通常会在示例中看到的默认值是
options
{
charVocabulary = '\3'..'\377';
}

涵盖以上观点。通常,如果同时需要ascii字符范围 'A'..'Z'和unicode范围,则可以创建unicode lexer规则,例如: '\u0080'..'\ufffe'

关于unicode - 如何在Antlr中匹配Unicode字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2081862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com