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