我正在开发一种新的自定义编程语言,以便对数字进行一些计算并以特定格式显示结果。
为此,我正在使用Antlr4进行词法分析和解析,并使用Java进行开发。我已经能够通过覆盖Antlr4生成的visitor方法来“执行”程序。
我现在正在尝试添加调试功能,并试图在遇到断点时暂停执行,然后继续执行。除此之外,我还需要支持单步执行,单步执行,单步执行和恢复。
有人可以说明如何实现这一目标吗?
答案 0 :(得分:1)
ANTLR4生成的解析器无法在解析运行过程中停止和恢复。为此,请使用ANTLR4运行时附带的解释器。他们实现了一个简单的ATN遍历,可以随时停止它,并保存当前ATN状态以供以后恢复调试器。
我在vscode-antlr4扩展中实现了这种方法,该扩展允许调试任意的ANTLR4语法。另请参见vscode marketplace。