Parsing 流式gdb mi解析器

Parsing 流式gdb mi解析器,parsing,gdb,saxparser,Parsing,Gdb,Saxparser,我编写了一个简单的gdb/mi解析器,可以将gdb/mi值解析到树中。但是现在我想构建一个流解析器,这样我就可以将部分gdb/mi输出抛出到解析器,或者类似于sax解析器的东西 我只知道如何实现递归解析器来解析值,但不知道如何实现整个mi输出。此外,我不知道如何让解析器暂停并按需继续 谁能给我一些建议吗?一些一般性的说明 首先,手册中的MI语法在某些地方是错误的。由于向后兼容,没有人修复代码。因为我不知道。。。可能是懒惰或缺乏乐趣,也没有人修改过手册。详细信息要么在bugzilla中的close

我编写了一个简单的gdb/mi解析器,可以将gdb/mi值解析到树中。但是现在我想构建一个流解析器,这样我就可以将部分gdb/mi输出抛出到解析器,或者类似于sax解析器的东西

我只知道如何实现递归解析器来解析值,但不知道如何实现整个mi输出。此外,我不知道如何让解析器暂停并按需继续

谁能给我一些建议吗?

一些一般性的说明

首先,手册中的MI语法在某些地方是错误的。由于向后兼容,没有人修复代码。因为我不知道。。。可能是懒惰或缺乏乐趣,也没有人修改过手册。详细信息要么在bugzilla中的closed(sigh)bugs中,要么在邮件列表存档中

第二种方法是将gdb的每一行输出作为要解析的文本

第三,已有其他几种MI解析器。您可能更喜欢从现有的开始

第四,或者您可能只想在gdb内部用Python编写代码,避免整个解析过程的混乱。Python是否涵盖了MI公开的所有功能还不完全清楚,但可能已经非常接近了