我需要手工构建Ruby DSL的哪些部分?

时间:2009-06-15 20:20:17

标签: ruby domain-driven-design jruby dsl

如果我想在Ruby 1.9或JRuby中构建DSL,我是否需要手动执行以下任何阶段:

  • Lexing
  • 口译
  • 解析
  • 即时编译

显然,作为程序员,我不喜欢尽可能多地编写实际代码,所以我希望这些步骤都不需要手工劳动:)

2 个答案:

答案 0 :(得分:6)

这一切都是使用元编程完成的。您不必执行任何列出的操作。 Jamis Buck使用Ruby在Writing Domain Specific Languages上发表了一篇不错的博文。

答案 1 :(得分:6)

这取决于你想要什么。对于编写内部(读取:使用ruby语法)DSL,它一直都是红宝石。如果你想构建一个不使用ruby语法的DSL,你可以看一下treetop gem。

Jeremy Mcanally有pretty good presentation about DSLs。他经历了外部和内部DSL的事情。