История изменений
Исправление
stevejobs,
(текущая версия)
:
Jetbrains Meta Programming System (MPS) тебя спасет.
Отличная штука, свободная, развивается на глазах. Делают умные русские товарищи, которые рады помочь (особенно если ты возьмешься чуть-что пропиарить тулзу и сказать, что «это написано на MPS!» на своем сайте)
Опыт нужен минимальный («генератор для блондинок»). Решение всё-в-одном.
Есть заранее приготовленные языки, даже С++ есть. Заранее приготовленные языки можно смешивать в одном проекте, то есть можешь «скриптовать» на смеси явы и эрланга, если хочешь. .NETу и не снилось.
Код самого MPS довольно понятный, чистый, местами с комментариями. Можно форкать на гитхабе и править на свое усмотрение, если чего-то не хватит. Мне вот не хватило пары тулзов, пришлось написать.
Для написания плагинов необязательно форкать. Поддерживаются динамические плагины в составе твоего DSL.
Ну и да, язык - Java. Точнее, модель жавы под внутренним названием baseLanguage. Т.е. углубляться во всякую эзотерическую функциональщину не надо, просто берешь и сразу пишешь. Но есть нюансы, т.к. baseLanguage - не совсем жава, там есть синтаксические дополнения например для удобной навигации по AST. Можно и без удобной навигации, но это ад. Поэтому несмотря на привычность базового языка, читать мануал всё равно придется, пристально и вдумчиво.
Исходная версия
stevejobs,
:
Jetbrains Meta Programming System (MPS) тебя спасет.
Отличная штука, свободная, развивается на глазах. Делают умные русские товарищи, которые рады помочь (особенно если ты возьмешься чуть-что пропиарить тулзу и сказать, что «это написано на MPS!» на своем сайте)
Опыт нужен минимальный («генератор для блондинок»). Решение всё-в-одном.
Есть заранее приготовленные языки, даже С++ есть. Заранее приготовленные языки можно смешивать в одном проекте, то есть можешь «скриптовать» на смеси явы и эрланга, если хочешь. .NETу и не снилось.
Код самого MPS довольно понятный, чистый, местами с комментариями. Можно форкать на гитхабе и править на свое усмотрение, если чего-то не хватит. Мне вот не хватило пары тулзов, пришлось написать.