Задача:
Есть файл, с кодом на языке Lua, и есть список вставок другого кода в этот файл. Вставки разделяются на вставки в функции и вставки вне функций. У вставок есть способ вставки, маркер и вставляемый код. Вставлять можно тремя способами, перед/после/заменить. Маркер это то же код.
Как я делал:
Первая реализация создавала структуру: таблица функций (имя функции, код функции). Но такой способ оказался неверным, так как нужно было форматировать код самому, удаляя комменты.
Вторая реализация создавала структуру: таблица функций (имя функции, индекс начала тела и длена). Индекс указывал на номер слова в файле. Но от этого то же пришлось отказаться, так как при вставке кода в файл, все индексы смещались.
Третьия реализация создавала структуру: таблица функций (имя функции, указатель на начало тела и указатель на конец тела). Перед тем как искать маркер в функции, нужно: очистить от лишнего кода функцию и сам маркер. Что бы искать маркер не чисто текст, а по логике языка. Но тут возникает проблема. Вот мы нашли маркер в очищенном коде, но как получить местоположение этого маркера в неочищенном коде?
Можно вообще не очищать кода, а сразу искать маркер в функции, попутно пропуская незначащие слова. Не очень хорошая штука выходит, но пока идей нету.
Может у кого-то есть идеи другой реализации или ещё чего...