我正在建立一种语言,一种玩具语言。该语法\#0061
应将给定的Unicode转换为字符:
String temp = yytext().subtring(2);
然后在尝试追加'\u'
到字符串之后,我注意到生成了一个错误。
我也试图以"\\" + "u" + temp;
这种方式不做任何转换。
我基本上是在尝试通过仅'0061'
向方法(帮助)提供将Unicode转换为字符。
去除'#'并将其用于Integer.parseInt("0061", 16)
将十六进制数字转换为int
。然后转换为char
。
(如果您是手工实现的lexer,另一种方法是在您的lexer与unicode字面值匹配时立即进行转换。但是在重读问题时,我发现您正在使用lexer生成器...好招! )
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句