Pregunta

Estoy buscando mover parte de mi metaprogramación más ligera de Nemerle a Boo y estoy tratando de descubrir cómo definir operadores personalizados. Por ejemplo, puedo hacer lo siguiente en Nemerle:

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

Entonces estos dos son equivalentes:

foo <- 5;
foo(5);

No puedo encontrar una manera de hacer esto en Boo, ¿alguna idea?

¿Fue útil?

Solución

Si bien Boo admite la sobrecarga del operador definiendo la función del operador estático adecuado ( op_addition ), y también admite macros sintácticas, no admite la creación de operadores personalizados en este momento.

Otros consejos

No estoy seguro de si esto es exactamente lo que necesita, pero puede crear macros sintácticas en Boo. Hay información en el sitio de CodeHaus, http://boo.codehaus.org/Syntactic+Macros, pero la sintaxis ha cambiado en una de las versiones recientes. No conozco ningún tutorial sobre la nueva sintaxis, pero la versión de origen de Boo 0.8.2 tiene algunos ejemplos (algunas de las estructuras del lenguaje se implementan como macros). Si no desea descargar el código fuente completo, está disponible una vista del repositorio SVN, https://svn.codehaus.org/boo/boo/trunk/src/Boo.Lang.Extensions/Macros/ . La macro de aserción sería un buen lugar para comenzar.

HTH

Stoo

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top