История изменений
Исправление
Ceiling_QB,
(текущая версия)
:
DSL делят на внутренние (специальное API, используя которое можно использовать подмножество языка как специальный язык для предметной области) и внешние (которые ты имел в виду). Пример внутреннего DSL для описания интерфейса (накидал что-то от балды):
vlayout{
label{ text = "text" },
button{ text = "click me", onclick = "on_vasya_button_click" },
}
Это полностью валидный Lua-код, для которого не нужно писать парсер. В принципе, сделать что-то подобное можно (почти?) на любом языке, в том числе и на Паскале.
Исходная версия
Ceiling_QB,
:
DSL делят на внутренние (специальное API, используя которое можно использовать подмножество языка как специальный язык для предметной области) и внешние (которые ты имел в виду). Пример внутреннего DSL для описания интерфейса (накидал что-то от балды):
vlayout{
label{ text = "text" },
button{ text = "click me", onclick = "on_vasya_button_click" },
}
Это полностью валидный Lua-код, для которого не нужно писать парсер. В принципе, сделать что-то подобное можно (почти?) на любом языке, в том числе и на Паскале.