编写 Java 解释器插件

Writing Java interpreter Plugin

几天前,我在 Eclipse 中编写了一个 Textinterpreter 插件,它基本上接收一个文本文件并在控制台中简单地打印出它的内容。它通过首先获取文本文件并将其转换为字符串来执行此操作。 然后它从中生成一个 Arraylist,其中每一行都在控制台中打印出来。

    List<String> mLines = new LinkedList<String>(Arrays.asList(string)

while(!mLines.isEmpty())) {
String line = mLines.remove(0);
if(line.equals("Stop...")){
                debug(DebugAction.Suspend);
}
System.out.println(">>> " + line + " <<<");

}

你可以在上面的代码中看到一个 if 语句,它检查 "Stop..." 是否写在文本文件的任何行上,如果是则 debug() 函数被调用(暂停 运行 除非用户在调试模式下按下 resume() 按钮。)

现在我想对 .java 文件做同样的事情。即编写一个 Java 解释器插件,它正常执行 java 文件,直到找到用代码编写的 "Stop..."

有什么建议吗?

我不认为你真的想实现一个 Java 解释器,那可能是一个让你忙几年的大项目。

对您的任务最自然的解决方案可能是扫描 Java 源文件并在每个 Stop 语句处自动 create breakpoints。然后 运行 处于调试模式的应用程序,您将获得所需的行为。由于您只需要创建断点的行号,您实际上可以逐行保留 reading/scanning 个文件。 执行其他语句(如调用 debug(..)add your snippet as a breakpoint condition(后跟 return true; 以告诉调试确实停止)。