однако все это крайне странно делается. Пух, вот объясни: первый и второй этап парсинга подробно
ну по факту, первым этапом я убираю всё лишнее из кода, делая из него однострочник, посредством убирания всех пробелов, табов, новых строк.
вторым этапом - разбиваю результат первого этапа на блоки, каждый из них пропускаю через регулярки, дабы определить тип конструкции, и "скомпилировать" в нужную сущность. На этом же моменте, я и рекурсивно парсю тело функций/классов/ветвлений, расставляю идентификационные номера каждому блоку, и прочие фишки, по типу того же соединения ветвлений в один класс
третьим этапом - просто выполняю блоки