好吧,这个问题是不言而喻的。假设我想实现一些特殊的语法,只是为了好玩。有可能吗?我应该使用什么工具?
发布于 2011-03-28 00:02:37
在Haskell标准中没有这样的元语法,但在GHC中有。您几乎可以使用GHC的“准报价”工具(不同于GHC的“模板Haskell”工具)进行任何您想要的表示法。
这上面的GHC user guide很短,主要指向haskell wiki page on Quasiquotation和实现者的home page,这两个都指向原始出版物:"Why It’s Nice to be Quoted: Quasiquoting for Haskell"。
人们已经使用准引号来嵌入XML语法、正则表达式、特殊字符串和文本形式,并在"JMacro是一个用于编程生成Javascript代码的库“中。
发布于 2011-03-27 23:03:28
我想,最好的方法是编写一个自定义的预处理器。有几个语法扩展是从这种方法开始的。例如,请参阅:
的编组信息和类型签名
还有更多。另一种方法是修补GHC,但这种方法相当困难。
https://stackoverflow.com/questions/5450003
复制相似问题