我正在使用ruby实现内部DSL。我提供了一个命令行工具来执行用文件编写的DSL脚本(很像puppet)。起初我打算使用load()来运行脚本,事情是,我希望能够在执行脚本之前传递一些上下文。我希望我能够以文本形式阅读脚本并将其视为块,然后使用某些给定的上下文执行该块。这样的事情可能吗?
或者这些事情一般如何实现?它可以肯定,因为木偶做到了。但在我开始挖掘其代码库之前,我正在尝试这里。
此外,我可以看一下内部DSL实现的一些不错的小例子吗?
答案 0 :(得分:1)
请查看以下链接,一系列DSL文章。
http://www.ibm.com/developerworks/java/library/j-cb04046/index.html http://deadprogrammersociety.blogspot.de/2006/11/ruby-domain-specific-languages-basics.html http://deadprogrammersociety.blogspot.de/2006/11/ruby-domain-specific-languages-basics_08.html http://deadprogrammersociety.blogspot.de/2006/11/ruby-domain-specific-languages-basics_19.html http://deadprogrammersociety.blogspot.de/2006/11/ruby-domain-specific-languages-basics_27.html