Какие части Ruby DSL мне нужно будет собрать вручную? - PullRequest
3 голосов
/ 16 июня 2009

Если я хочу создать DSL в Ruby 1.9 или JRuby, мне нужно будет выполнить любой из этих этапов вручную:

  • Лексинг
  • Интерпретация
  • Разбор
  • Своевременная компиляция

Очевидно, что, будучи программистом, мне не нравится писать настоящий код столько, сколько я могу себе позволить, поэтому я надеюсь, что ни один из этих шагов не требует ручного труда:

Ответы [ 2 ]

6 голосов
/ 16 июня 2009

Это зависит от того, что вы хотите. Для написания внутреннего (читай: использует синтаксис ruby) DSL, он просто ruby. Если вы хотите создать DSL, который не использует синтаксис ruby, вы можете взглянуть на самоцвет дерева.

У Джереми МакКанали есть довольно хорошая презентация о DSL . Он проходит как внешние, так и внутренние DSL вещи.

6 голосов
/ 16 июня 2009

Все это делается с помощью метапрограммирования. Вам не нужно делать ничего из перечисленного. У Джамиса Бака есть хороший пост в блоге Написание доменных имен с использованием Ruby.

...