LINUX.ORG.RU

История изменений

Исправление 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-код, для которого не нужно писать парсер. В принципе, сделать что-то подобное можно (почти?) на любом языке, в том числе и на Паскале.