我正在尝试{/ 1}来自
pretty print an AST generated
我刚刚错过了如何在文档中执行此操作吗?
答案 0 :(得分:4)
如果你的意思是解析AST(获取Java代码),你将不得不自己写一些东西。
如果你的意思是打印出很好地缩进的AST结构,那么我们完全就是iprintln
。
此外,对于大型AST,REPL可能不太喜欢它,在util::FastPrint
中检查我们的(如果尚未完成的)未记录的快速打印功能。 fiprintln
打印到流氓输出窗口,速度要快得多。
答案 1 :(得分:1)
不,我相信当前版本不包含此功能。如果你没有重写AST,你当然可以通过读取位置来获取源代码,如:
rascal>import IO;
ok
rascal>readFile(ast@\loc)
str: ...
仅在天气适宜时才有效..其他解决方案是:
我似乎记得有一个函数可以将M3 ASTs映射回Java中的JDT AST,然后调用JDT的漂亮打印功能,但看起来它已经停止了。换句话说,这里有一些TODO。