В моем приложении я должен ввести некоторый код для конкретного домена, и я хотел бы создать DSL для этого.DSL просто должен иметь некоторые действительно базовые команды.
Пример кода DSL:
srccode{
code: "if("
func: insertInputData(1)
code: "){\n "
func: insertOutputData(0)
code: "\n}\n"
cond: checkForOutputConnection(1):
code: "else{\n "
func: insertOutputData(1)
code: "\n}\n"
}
Этот код должен быть переведен в исходный код языка общего назначения (например, Python), например:
def getSrcCode():
s = ""
s += "if("
s += insertInputData(1)
s += "){\n "
s += insertOutputData(0)
s += "\n}\n"
if(outputConnected(1)):
s += "else{\n "
s += insertOutputData(1)
s += "\n}\n"
return s
Так что на самом деле речь идет просто о простом переводе.
- Xtext, кажется, становится довольно сложным не позднее, чем при попытке интегрировать его в другие (не Java) приложения, и, похоже, он привязан к Java.
- JetBrains MPS, безусловно, является чем-то совершенно потрясающим, но мне не нужен редактор проекций, просто чистый текст
(это может быть неправильно, я не использовал ни одного из нихпока)
Какой инструмент или инструмент вы бы порекомендовали мне использовать для достижения возможности перевода кода на другие языки легко , как показано (я предпочитаю что-то, что довольно ограничено каким-то образомно легко выучить и использовать, отвечая моим низким потребностям).