我正在使用Rascal处理Commandline REPL环境,并尝试查看解析树和Ambiguity库中的输出等内容。但是,这些在命令行中被截断。例如:
rascal>diagnose(parse(|cwd:///Core/tests/F0.func|));
list[Message]: [
info(
"Ambiguity cluster with 2 alternatives",
|cwd:///Core/tests/F0.func|(0,0,<1,0>,<1,0>)),
info(
"Production unique to the one alternative: Exp = app: Exp Exp ;",
|cwd:///Core/tests/F0.func|(0,0,<1,0>,<1,0>)),
info(
"Production unique to th...
我很想看到这个输出的其余部分。有没有我可以更改的设置,或者我可以查看此信息。感谢。
答案 0 :(得分:2)
这是出于性能原因而完成的。 (终端/外壳不喜欢打印巨大的字符串)
您可以import IO
并使用iprintln
获取缩进打印而不会截断。出于性能原因,您也可以使用iprintToFile
:
import IO;
r = diagnose(parse(|cwd:///Core/tests/F0.func|));
iprintln(r)
作为替代方案,您可能希望使用util::ValueUI::text
在编辑器中获取值:(仅适用于eclipse)
import util::ValueUI;
r = diagnose(parse(|cwd:///Core/tests/F0.func|));
text(r, 4); // indentation level is 4
最后,我们有时会使用util::Clipboard
将值复制到剪贴板:
import util::Clipboard;
r = diagnose(parse(|cwd:///Core/tests/F0.func|));
copy(r)
然后您可以使用操作系统快捷方式将它们粘贴到任何位置。