Я возвращаюсь к старому проекту, в котором я добавил функциональность препроцессора к Essence ', и я понял, что мое предыдущее решение по написанию языка, специфичного для домена, и связанного с ним лексера / парсера было излишним.
Вместо этого мне просто нужно иметь возможность вставлять динамический код языка в файл, изолировать его во время выполнения, вычислять eval и вставлять результаты. Другими словами, очень похоже на PHP-модель вставки динамического кода в HTML. Я бы предпочел не использовать PHP, так как Python гораздо легче распространять как часть более крупного проекта (IronPython или Jython)
Итак, возникает вопрос, как лучше всего реализовать что-то вроде следующего:
<code>Python goes here</code>
Lots of essence <code>Python</code> prime code goes here
Я не хочу менять структуру файла Essence (если я удаляю все блоки кода, все оставшееся должно иметь синтаксическую корректность. Нужно уметь вставлять текст вместо кода блок как PHP.
Наконец, в плане безопасности меня не беспокоит внедрение кода, так как пользователь сам выбирает файл для выполнения, хотя, если есть преимущества безопасности для одной модели по сравнению с другими без дополнительных затрат, это, очевидно, будет хорошо.
Приветствия заранее