【发布时间】:2013-07-04 16:36:01
【问题描述】:
我有几个关于 antlr 的 C 目标的问题。 (我使用的是 libantlr3c-3.4)
由于没有垃圾回收,所以我必须自己清理内存,所以我想在我的数据结构被填充并解析完成后,丢弃所有解析器数据。有没有一种简单的方法来删除 整个 解析器内存,而不是遍历每个对象并显式删除它? (我注意到 antlr3string.h 中有一条评论说这是可能的,但我找不到如何做到这一点的代码示例。)
当输入语法正确时,我的解析器工作正常。但是当输入语法错误时,它会报告错误并给出分段错误。我想这是因为在 C 中没有捕获异常(与 java 不同)。在这种情况下如何使退出优雅? (我看到了关于这个主题的答案 - 4751699 - 但那是 2 年前的事了,旧版本的 antlr .. 只是想确认这个答案是否仍然有效,或者必须做一些其他的事情。)
【问题讨论】: