Вопрос

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

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

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

foo <- 5;
foo(5);

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

Это было полезно?

Решение

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

Другие советы

Я не уверен, что это именно то, что вам нужно, но в 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/.Макрос Assert будет хорошим началом.

ХТХ

Стоо

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top