c++ - 令牌识别错误:ANTLR4.8 C++ 目标中度数符号的“°”
问题描述
我越来越
token recognition error at: '°'
对于学位符号,我不知道该怎么做。
在我定义的词法分析器中
度数:'\uC2B0' | '\u00F8';
用于词法分析器和解析器的 .g4 文件以 UTF-8 存储。输入文件也以 UTF-8 格式存储。当我在十六进制编辑器中查看输入文件时,度数符号被编码为 c2 b0。
读取输入文件并解析的代码
std::ifstream is(inputFile);
antlr4::ANTLRInputStream antlrIs(is);
TagsLexer lexer(&antlrIs);
antlr4::CommonTokenStream tokens(&lexer);
TagsParser parser(&tokens);
TagsParser::TagsContext* tagsContext = parser.tags();
解决方案
将实际的 unicode 符号 \u00B0 与其在 UTF-8 C2 B0 中的编码混合的简单案例。
推荐阅读
- django - Postgresql ArrayField vs ForeignKey?哪一个是高性能的?
- c# - 使用实体框架查询多个条件
- freeradius - FreeRadius 无法设置自定义变量
- reactjs - manifest.json 中的环境变量 - Chrome 扩展
- r - 无法使用循环中的发现创建 data.frame
- uml - Enterprise Architect - 可执行状态机 - 基于时间的转换
- html - 嘿伙计们,我是网页设计的新手,需要一些关于这个的建议
- powerbi - 年初至今的测量平均值
- android - java.lang.NoSuchMethodException:
[] - android - 在我的 webview 应用程序上调用虚拟方法 'int android.graphics.Bitmap.getWidth()' on an null object reference"