Nemerle OperatorAttribute параметры
Мой вопрос в комментарии в следующем коде.
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 ) ]>
}
}
Этот пример кода из: формата Infix для макроса Nemerle
1 ответ
Решение
Эти числа определяют приоритет оператора и ассоциативность. Если первое число меньше, оператор является ассоциативным слева, если второе - справа. Операторы с большими числами имеют более высокий приоритет. С первого взгляда это выглядит не интуитивно, но когда вы больше думаете о деталях разбора выражения, это имеет смысл.