如何在调试时暂停自定义解释器?
How to pause a custom built interpreter while debugging?
我正在开发一种新的自定义编程语言来对数字执行一些计算并以特定格式显示结果。
为此,我使用 Antlr4 进行词法分析和语法分析,并在 Java 中进行开发。通过覆盖 Antlr4 生成的访问者方法,我已经能够 "execute" 程序。
我现在正尝试添加调试功能,并尝试在遇到断点时暂停执行,然后继续执行。除此之外,我还需要支持Step Through、Step In、Step Out和Resume。
有人可以解释一下如何完成这个吗?
ANTLR4 生成的解析器无法在解析过程中停止和恢复 运行。为此,请使用 ANTLR4 运行time 附带的解释器。他们实现了一个简单的 ATN 遍历,它可以在任何时候停止,并保存当前的 ATN 状态以供调试器稍后恢复。
我在 vscode-antlr4 extension, which allows to debug arbitrary ANTLR4 grammars. See also the vscode marketplace 中实施了此方法以获取更多详细信息。
我正在开发一种新的自定义编程语言来对数字执行一些计算并以特定格式显示结果。
为此,我使用 Antlr4 进行词法分析和语法分析,并在 Java 中进行开发。通过覆盖 Antlr4 生成的访问者方法,我已经能够 "execute" 程序。
我现在正尝试添加调试功能,并尝试在遇到断点时暂停执行,然后继续执行。除此之外,我还需要支持Step Through、Step In、Step Out和Resume。
有人可以解释一下如何完成这个吗?
ANTLR4 生成的解析器无法在解析过程中停止和恢复 运行。为此,请使用 ANTLR4 运行time 附带的解释器。他们实现了一个简单的 ATN 遍历,它可以在任何时候停止,并保存当前的 ATN 状态以供调试器稍后恢复。
我在 vscode-antlr4 extension, which allows to debug arbitrary ANTLR4 grammars. See also the vscode marketplace 中实施了此方法以获取更多详细信息。