Есть функция, читающая данные из потока. Задача состоит в том чтобы получить функцию, которая вместо вызова процедуры чтения просто ожидала поступления новых данных. В данном случае вполне достаточно просто заменить все вызовы процедуры чтения на yield и оставить остальное как есть.
Только одна проблемка: целевой язык не поддерживает yield, так что необходимо придумать как заменить этот код, учитывая что yield находиться внутри циклов и ветвлений и не только.
Ваши предложения?