Определение операторов в Boo - PullRequest
1 голос
/ 11 октября 2008

Я пытаюсь перенести часть своего легковесного метапрограммирования с Nemerle на Boo и пытаюсь понять, как определять пользовательские операторы. Например, я могу сделать следующее в Nemerle:

macro @<-(func, v) {
    <[ $func($v) ]>
}

Тогда эти два эквивалента:

foo <- 5;
foo(5);

Я не могу найти способ сделать это в Бу - есть идеи?

Ответы [ 2 ]

5 голосов
/ 10 июля 2009

Хотя Boo поддерживает перегрузку операторов путем определения соответствующей статической операторной функции (op_addition), а также поддерживает синтаксические макросы, в настоящее время он не поддерживает создание пользовательских операторов.

0 голосов
/ 13 октября 2008

Я не уверен, что это именно то, что вам нужно, но вы можете создавать синтаксические макросы в Boo. На сайте CodeHaus есть некоторая информация, http://boo.codehaus.org/Syntactic+Macros,, но синтаксис изменился в одном из последних выпусков. Я не знаю ни одного учебника по новому синтаксису, но в исходной версии Boo 0.8.2 есть несколько примеров (некоторые языковые структуры реализованы как макросы) Если вы не хотите загружать полный исходный код, доступно представление SVN-репозитория, https://svn.codehaus.org/boo/boo/trunk/src/Boo.Lang.Extensions/Macros/. Хорошим началом будет макрос макросов.

НТН

Stoo

...