Pergunta

Eu estou olhando para mover alguns dos meus metaprogramming mais leve do Nemerle para Boo e eu estou tentando descobrir como definir operadores personalizados. Por exemplo, eu posso fazer o seguinte em Nemerle:

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

Em seguida, estes dois são equivalentes:

foo <- 5;
foo(5);

Não consigo encontrar uma maneira de fazer isso em Boo -? Quaisquer ideias

Foi útil?

Solução

Enquanto Boo suporta sobrecarga de operadores, definindo a função de operador estático apropriado (op_addition), e também suporta macros sintáticos, ele não suporta a criação de operadores personalizados neste momento.

Outras dicas

Eu não tenho certeza se isso é exatamente o que você precisa, mas você pode criar macros sintáticas em Boo. Há algumas informações no site da Codehaus, http://boo.codehaus.org/Syntactic+Macros, mas a sintaxe mudou em um dos últimos lançamentos. Eu não sei de qualquer tutoriais sobre a nova sintaxe, mas a liberação fonte para Boo 0.8.2 tem alguns exemplos (algumas das estruturas da linguagem são implementadas como macros). Se você não quiser baixar o código fonte completo vista para o repositório SVN está disponível, https://svn.codehaus.org/boo/boo/trunk/src/Boo.Lang.Extensions/Macros/ . A macro assert seria um bom lugar para começar.

HTH

Stoo

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top