【发布时间】:2008-10-21 21:23:37
【问题描述】:
假设我需要一些非常特殊的乘法运算符。它可以在以下宏中实现:
macro @<<!(op1, op2)
{
<[ ( $op1 * $op2 ) ]>
}
我可以像这样使用它
def val = 2 <<! 3
还有它的工作。
但我真正想要的是一些类似于“英语”的运算符,用于正在开发的 DSL:
macro @multiply(op1, op2)
{
<[ ( $op1 * $op2 ) ]>
}
如果我尝试像这样使用它
def val = 2 multiply 3
编译器因 'expected ;' 而失败错误
有什么问题?如何实现这个中缀格式的宏?
【问题讨论】:
标签: metaprogramming dsl nemerle