编写Java解释器插件

时间:2015-07-27 09:08:49

标签: java eclipse eclipse-plugin abstract-syntax-tree eclipse-jdt

几天前我在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()< / em>调用funtion(除非用户在debugmode中按resume()按钮,否则它将暂停运行。)

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

任何建议?

1 个答案:

答案 0 :(得分:1)

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

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