K
for i in 0 .. 3:мы должны получить
echo i
for i in 0 .. 3:Проход должен работать на AST после семантической проверки - т.е. есть доступ ко всем символам, определения типов и прочее, так что конкретные детали реализации можно не учитывать (как получать значения переменных, записи в них и т.д)
log("loop start")
log("var set i = ", i)
log("function call echo", i)
echo i
log("loop end")
Основная проблема в формате записи и восстановления хода работы после выполнения программы - можно придумать какой-то свой формат записи, но может быть уже существуют похожие решения?
И впоследствии я хочу сделать что-то схожее с дебаггером в котором можно проследить весь "путь" значения через все присвоения, вызовы и циклы. Или сделать визуализацию работы самой программы.
strace
разве что на ум приходит