Domanda

Sto cercando di spostare parte della mia metaprogrammazione più leggera da Nemerle a Boo e sto cercando di capire come definire gli operatori personalizzati. Ad esempio, posso fare quanto segue in Nemerle:

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

Quindi questi due sono equivalenti:

foo <- 5;
foo(5);

Non riesco a trovare un modo per farlo in Boo - qualche idea?

È stato utile?

Soluzione

Sebbene Boo supporti il ??sovraccarico dell'operatore definendo la funzione operatore statico appropriata ( op_addition ) e supporta anche macro sintattiche, al momento non supporta la creazione di operatori personalizzati.

Altri suggerimenti

Non sono sicuro che sia esattamente ciò di cui hai bisogno, ma puoi creare macro sintattiche in Boo. Ci sono alcune informazioni sul sito CodeHaus, http://boo.codehaus.org/Syntactic+Macros, ma la sintassi è cambiata in una delle versioni recenti. Non conosco alcun tutorial sulla nuova sintassi, ma la versione sorgente di Boo 0.8.2 ha alcuni esempi (alcune delle strutture linguistiche sono implementate come macro). Se non si desidera scaricare la fonte completa, è disponibile una vista del repository SVN, https://svn.codehaus.org/boo/boo/trunk/src/Boo.Lang.Extensions/Macros/ . La macro assert sarebbe un buon punto di partenza.

HTH

Stoo

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top