为GUI调试器编写解析器

时间:2014-03-07 16:56:58

标签: parsing debugging user-interface lexer

我想使用MI为gdb编写GUI前端。目前我可以通过管道与gdb进行通信,但GUI调试器应该能够显示源代码并允许用户使用鼠标检查/修改数据。

问题是,为了知道用户指向的变量,我想我需要编写一个解析器。但是,我不想实现整个词法分析器和解析器的东西。如何在源代码中获取这些标识符的位置?

[编辑]

简而言之,我希望用户能够通过鼠标悬停在变量上来检查变量的值,因此我必须解析代码以了解每个变量的出现位置。我想实现这样的功能: Taken from Visual Studio, value appears when hover on the var.

1 个答案:

答案 0 :(得分:0)

  

如何在源代码中获取这些标识符的位置?

...无需编写解析器。

你做不到。您需要编写自己的(对于GUI将支持的所有编程语言),或者挂钩其中一个现有编程语言。

Clang使得将C / C ++解析器合并到GUI中相对容易,但是......

  • 并非一切都可以用Clang解析
  • 编写GUI的这一方面可能比其他方面复杂100倍,因此可能不值得付出努力。