输出在Rascal Commandline REPL中被截断

时间:2015-01-06 19:49:36

标签: rascal

我正在使用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...

我很想看到这个输出的其余部分。有没有我可以更改的设置,或者我可以查看此信息。感谢。

1 个答案:

答案 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)

然后您可以使用操作系统快捷方式将它们粘贴到任何位置。