Как то незаметно перешли на тему парсеров :) Кстати, работая с AST обнаружил, что собирать его из объектов гораздо лучше, чем из массивов
Если сохранять AST в строку (json), то массивы, конечно, компактнее. Но массивы требуют больше памяти и операции с ними медленней
Не говоря уже о том, что с массивами нужно помнить по какому смещению и что находится, легко ошибиться, код сложнее читается
Кажется, что совсем без массивов в AST не обойтись. Но я попробовал использовать однонаправленные списки вместо массивов...
Генерация AST получилась быстрее и дешевле по памяти. Но читаемость (JSON) стала хуже. Вот не знаю, что важнее :) экспериментирую дальше