Definindo operadores em Boo
-
10-07-2019 - |
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
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