2015-01-06 1 views
1

Я работаю над средой Commandline REPL с помощью Rascal и пытаюсь просмотреть такие вещи, как деревья синтаксического разбора и выходы из библиотеки Ambiguity. Однако они усекаются в командной строке. Например:Выход усечен в Rascal Commandline REPL

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... 

Мне интересно видеть остальную часть этого выхода. Есть ли настройка, которую я могу изменить, или каким-то образом я могу просмотреть эту информацию. Благодарю.

ответ

2

Это сделано по соображениям безопасности. (Терминал/Корпуса не любят печатать ОГРОМНЫЕ струны)

Вы можете import IO и использовать iprintln, чтобы получить отпечаток без отрезка. Из соображений производительности вы можете ALS использовать iprintToFile:

import IO; 
r = diagnose(parse(|cwd:///Core/tests/F0.func|)); 
iprintln(r) 

В качестве альтернативы, вы можете получить значение в редакторе с помощью util::ValueUI::text: (работает только в затмении)

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) 

, а затем вы можете вставлять их в любом месте с помощью ОС ярлык.

+0

Именно то, что я искал. Ура! – josh

+0

BTW, усечение также выполняется, потому что пользователи не просили об этом. Иногда прокрутка становится утомительной. Надеюсь, у нас будет (un) складное выходное взаимодействие в консоли некоторое время в будущем, чтобы получить лучшее из того и другого. – jurgenv

 Смежные вопросы

  • Нет связанных вопросов^_^