Я хочу написать макропроцессор. До сих пор я сделал очень простой набросок того, как это должно выглядеть, и пришел к выводу, что изобретать совершенно новый язык не будет хорошей идеей, но я должен повторно использовать существующие концепции. Пока что мой набросок - это что-то вроде irb с неким текстовым синтаксисом и функциями, но я не уверен, что мне следует использовать в качестве заменителя рубина.
Язык должен быть простым, но мощным. Я не хочу писать в нем ОС, но она должна быть менее «сырой», чем, например, до нашей эры или вперед. Меня не волнует время исполнения вообще. Встраивание не должно быть слишком сложным, и было бы хорошо, если бы сам язык был стабильным.
До сих пор я рассматривал это:
- Lua - Он должен легко обрабатывать текст. У Луа даже нет
while(c=getchar()){}
. Я скептик.
- awk - просто, обработка текста проста, но никогда не предназначена для встраивания
- perl - путь сложный, стабильный, но кажется почти мертвым.
- python - Значительные пробелы; они не будут мешать встроенным определениям функций?
- groovy / nice / java - Трудно / невозможно вставить? Также способ тяжелым.
- javascript - Действительно нравится (кроме DOM), но есть ли стабильная / встраиваемая реализация? Я не хочу возиться с API каждые 2 недели, когда появляется новая версия v8. Как я уже сказал, меня не волнует время исполнения.
Я действительно не нашел плюсов / минусов за
Обновление: Язык должен иметь такие функции, как определение функций, загрузка библиотеки или регулярные выражения (циклы также были бы очень хорошими) Я не хочу использовать традиционный макроязык, такой как M4, потому что я хочу писать в более процедурном (или, возможно, функциональном) стиле. У макроязыков есть свои плюсы, но мне нужен совершенно новый способ мышления о проблеме, которая трудна, особенно для начинающих. Моя цель - использовать лучшее из обоих миров.