Я думаю, что анализ должен быть довольно легким: я собираюсь попробовать использовать loco генератор парсера PHP.Но рендеринг, распределяющий вертикальный / горизонтальный интервал, кажется трудной работой.В соответствии с DOT-страницей в Википедии, Graphviz может это сделать (например, эта форма кажется хорошей отправной точкой).