Так а что, известен модуль, который это все умеет делать? Тут же без семантики не обойтись. ИМХО пожеланий многовато.