【发布时间】:2013-08-07 03:26:03
【问题描述】:
我有一个为DParser 编写的大型语法并使用 Python 绑定。当我第一次运行解析器并且 DParser 生成它的内部表时,我收到了一些类似这样的警告:
warning: trying to write code to binary file
warning: trying to write code to binary file
warning: trying to write code to binary file
不确定这些警告的来源是什么。我唯一能找到的是 DParser 源代码“write_tables.c”:
write_code(FILE *fp, Grammar *g, Rule *r, char *code,
char *fname, int line, char *pathname)
{
char *c;
if ( !fp ) {
d_warn("trying to write code to binary file");
return;
}
...
}
任何提示或想法将不胜感激。
【问题讨论】:
-
我想说你没有给 Dparser 一个文件名来写它生成的表。你读过它的使用文档吗?
-
我当然已经阅读了文档。自动选择表的文件名 (d_parser_mach_gen.g.d_parser.dat, d_parser_mach_gen.g.md5)。我发现这些警告的问题是因为我的语法有错误,并且在某些情况下我忘记在 [ ] 周围添加引号。像 [ example_non_terminal ]。它将 example_non_terminal 作为字符集。其中一些是导致问题的原因。
-
您可以将您对问题的发现添加为答案(是的,您可以回答您自己的问题),这样这个问题就可以结束了。 [我不得不承认,没有引用语法元素和你得到的错误信息之间的因果关系,完全让我无法理解]。
标签: parsing compiler-construction parser-generator glr