Ruby 中的简单 DSL
Posted
技术标签:
【中文标题】Ruby 中的简单 DSL【英文标题】:simple DSL in Ruby 【发布时间】:2017-02-21 00:54:54 【问题描述】:我想用 Ruby 制作一个 DSL,在那里我可以使用简单的命令做一些事情。例如“GO PRINT 10 *”将打印 10 颗星 或“GO PRINT 5 &”将打印 5 & 符号。有谁知道好的教程吗? 听说宝石驯服值得关注?
【问题讨论】:
我建议自己先学习编写 DSL 的基础知识。否则 Docile 可能会成为你难以理解的魔法黑匣子。 Russ Olsen 所著的Ruby 中的设计模式一书有一章是关于 DSL 的。 Tutorials for writing DSL in Ruby的可能重复 【参考方案1】:这里有一些与你想做的事情相关的链接:
https://robots.thoughtbot.com/writing-a-domain-specific-language-in-rubyTutorials for writing DSL in Rubyhttps://www.leighhalliday.com/creating-ruby-dsl
如果您想要一个非常灵活的 DSL(即,您无法分辨出它实际上是 Ruby,这听起来像是您想要的),我建议您学习一门语言,例如Racket 非常适合创建各种语言,例如 a brainf*ck clone、a stack-based calculator、these 和 these。
【讨论】:
以上是关于Ruby 中的简单 DSL的主要内容,如果未能解决你的问题,请参考以下文章