【发布时间】:2009-11-01 02:51:09
【问题描述】:
我有兴趣了解 Boo 更强大的功能,例如句法宏、解析器支持(Ometa?)、编译器管道等。我的印象是,这些领域一直在不断变化,而且文档记录不足。除了学习源代码,还有什么好的资源可以学习这些东西吗?
【问题讨论】:
标签: metaprogramming extensibility boo
我有兴趣了解 Boo 更强大的功能,例如句法宏、解析器支持(Ometa?)、编译器管道等。我的印象是,这些领域一直在不断变化,而且文档记录不足。除了学习源代码,还有什么好的资源可以学习这些东西吗?
【问题讨论】:
标签: metaprogramming extensibility boo
【讨论】:
有Building Domain Specific Languages in Boo。我得到了一个抢先体验版,发现它令人沮丧,因为你提到的“流量”原因;我终于放弃了。希望从那时起事情已经稳定下来。
【讨论】:
【讨论】:
到目前为止,了解 Boo 能做什么的最佳参考是花大量时间进行测试。弄清楚发生了什么需要一段时间,但测试确实可以锻炼所有可用的肌肉并且写得很好。 https://github.com/bamboo/boo/blob/master/tests/testcases/macros/macro-1.boo
另外,请注意 boo 的解释器 - booish- 非常出色,如果您不确定测试的工作原理,您可能应该花时间在 booish 上进行刺激。 http://boo.codehaus.org/Interactive+Interpreter
【讨论】:
我没有仔细浏览过这个网站,但它似乎对 Boo 有最好的参考: http://boo.codehaus.org/Tutorials
这部分仍然没有很好的文档记录,但是如果您查看https://github.com/bamboo/boo/wiki/Syntactic-Macros,您可以了解如何制作语法宏。基本上你必须实现Boo.Lang.Compiler.IAstMacro。
正确的部分在 https://github.com/bamboo/boo/wiki/Abstract-Syntax-Tree 中,但它看起来很不完整。
【讨论】: