【发布时间】:2015-02-24 18:11:25
【问题描述】:
我正在尝试pretty print an AST generated来自
createAstFromFile(|cwd:///Java/Hello.java|,true);
我只是错过了文档中的操作方法吗?
【问题讨论】:
标签: rascal
我正在尝试pretty print an AST generated来自
createAstFromFile(|cwd:///Java/Hello.java|,true);
我只是错过了文档中的操作方法吗?
【问题讨论】:
标签: rascal
如果您的意思是取消解析 AST(取回 Java 代码),您将不得不自己编写一些东西。
如果您的意思是打印缩进良好的 AST 结构,我们有 iprintln 正是为此目的。
另外,对于大型 AST,REPL 可能不太喜欢它,请在 util::FastPrint 中查看我们(还没有)未记录的快速打印功能。 fiprintln 打印到流氓输出窗口,这要快得多。
【讨论】:
不,我认为当前版本不包含此功能。如果不重写AST,当然可以通过读取位置来获取源码,如:
rascal>import IO;
ok
rascal>readFile(ast@\loc)
str: ...
这只有在天气合适的时候才有效。其他解决方案是:
我似乎记得有一个函数可以将 M3 AST 映射回 Java 中的 JDT AST,然后调用 JDT 的漂亮打印函数,但它看起来已经停止使用。换句话说,这里有一些 TODO。
【讨论】: