我想写的规则是:
Character : '\u0000'..'\u10FFF';
但是,当尝试针对定义它的词法分析器文件运行 antlr 工具时,出现以下错误:
multi-character literals are not allowed in lexer sets: '\u10FFF'
如何解决这个问题?
尝试用以下方法包装多字符文字{
and }
,并使用v4样式字符集[...]
:
Character : [\u0000-\u{10FFF}];
From https://github.com/antlr/antlr4/blob/master/doc/lexer-rules.md#lexer-rule-elements https://github.com/antlr/antlr4/blob/master/doc/lexer-rules.md#lexer-rule-elements:
[...] 匹配字符集中指定的字符之一。解释x-y
作为范围之间的字符集x
and y
,包含在内。以下转义字符被解释为单个特殊字符:\n
, \r
, \b
, \t
, \f
, \uXXXX
, and \u{XXXXXX}
。要得到]
, \
, or -
你必须逃脱他们\
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)