Définir les opérateurs dans Boo
-
10-07-2019 - |
Question
Je souhaite déplacer une partie de ma métaprogrammation plus légère de Nemerle à Boo et j'essaie de comprendre comment définir des opérateurs personnalisés. Par exemple, je peux faire ce qui suit dans Nemerle:
macro @<-(func, v) {
<[ $func($v) ]>
}
Ensuite, ces deux sont équivalents:
foo <- 5;
foo(5);
Je ne trouve pas moyen de le faire à Boo - des idées?
La solution
Alors que Boo prend en charge la surcharge d'opérateurs en définissant la fonction d'opérateur statique appropriée ( op_addition
), ainsi que les macros syntaxiques, il ne prend pas en charge la création d'opérateurs personnalisés pour le moment.
Autres conseils
Je ne sais pas si c'est exactement ce dont vous avez besoin, mais vous pouvez créer des macros syntaxiques dans Boo. Il y a quelques informations sur le site CodeHaus, http://boo.codehaus.org/Syntactic+Macros"/ >, mais la syntaxe a été modifiée dans l'une des versions récentes. Je ne connais aucun didacticiel sur la nouvelle syntaxe, mais la version source de Boo 0.8.2 en contient quelques exemples (certaines structures de langage sont implémentées sous forme de macros). Si vous ne souhaitez pas télécharger le code source complet, une vue du référentiel SVN est disponible, https://svn.codehaus.org/boo/boo/trunk/src/Boo.Lang.Extensions/Macros/ . La macro assert serait un bon point de départ.
HTH
Stoo