как читать стандартный ввод и писать в стандартный вывод с помощью dart2js

согласно этому ответу

библиотеки dart:io предназначены только для сервера/командной строки, поэтому их нельзя скомпилировать с помощью dart2js.

можно ли читать со стандартного ввода и записывать на стандартный вывод с помощью dart2js, например:

$ java -jar ../../Downloads/rhino1_7R4/js.jar myjs.js < in.txt > out.txt

Я рассматриваю возможность редактирования сгенерированного файла dart2js и добавления чего-то вроде:

importPackage(java.io);
importPackage(java.lang);
scan = new BufferedReader( new InputStreamReader(System['in']) );

person robert king    schedule 07.01.2014    source источник
comment
Есть удача с подачи в дартс?   -  person Rohan Bojja    schedule 08.06.2020
comment
не могу вспомнить извините - но вы могли бы попробовать сделать stdin с помощью ajax в своем коде дротика, а затем, когда вы скомпилируете в javascript, прочитайте из stdin и запишите в stdout - для этого просто замените функцию ввода-вывода (подсказка: используйте строка, например глобальный obj, obj[my_io] = ajaxfunc... затем создайте сценарий, который добавляет obj[my_io] = stdinfunc..   -  person robert king    schedule 08.06.2020


Ответы (1)


dart2js предназначен для работы в браузере.
dart:io не преобразуется в JS, поскольку браузер не поддерживает эту функцию (например, stdout/stdin).

Вы хотите запустить JS, сгенерированный из Dart, на сервере с помощью Rhino? Возможно, вы могли бы интегрировать виртуальную машину Dart в свое приложение и запускать код Dart без переноса в JS.

person Günter Zöchbauer    schedule 07.01.2014
comment
веб-сайты, такие как codechef.com, поддерживают Rhino, но не поддерживают dart. То есть вы загружаете свой файл кода, и они запускают ваш код. - person robert king; 07.01.2014
comment
Я только бегло просмотрел их FAQ. Я предполагаю, что они выполняют код с использованием stdin/stdout на сервере и возвращают клиенту только результат. Не могли бы вы предоставить больше информации о том, чего вы пытаетесь достичь? - person Günter Zöchbauer; 07.01.2014
comment
Я хочу решить codechef.com/problems/TEST с помощью dart. Мое текущее решение состоит в том, чтобы написать собственный компилятор dart2js, который заменяет Dart Streams на Rhino BufferedReaders. - person robert king; 07.01.2014
comment
вот несколько примеров ответов: codechef.com/ статус/ - person robert king; 07.01.2014
comment
Кажется, теперь я понимаю, чего вы пытаетесь достичь. Использование JS-interop было бы первой идеей, но я понятия не имею, как использовать это в приложении только для кода Dart. Разместите свой вопрос на странице groups.google.com/a/dartlang.org тоже. - person Günter Zöchbauer; 07.01.2014