2

我的问题在以下代码的评论中。

namespace TestMacroLib
{
    [assembly: Nemerle.Internal.OperatorAttribute ("TestMacroLib", "multiply", false, 160, 161)] 
    // what does 160 and 161 represent? The parameters are "left" and "right", but that doesn't help.
    public macro multiply(op1, op2)
    {
        <[ ( $op1 * $op2 ) ]>
    }
}

此代码示例来自: Nemerle 宏的中缀格式

4

1 回答 1

4

这些数字决定了运算符的优先级和关联性。如果第一个数字较小,则运算符是左关联的,如果第二个是右关联的。具有较大数字的运算符具有较高的优先级。乍一看很不直观,但仔细想想表达式解析的细节,还是有点意思的。

于 2013-09-30T20:04:29.507 回答