Corso di Raku / Espressioni regolari e grammatiche / Grammatiche / L’albero di analisi, make e made / Exercises / Moltiplicate una coppia

Soluzione: Moltiplicate una coppia

Ecco una possibile soluzione del compito.

Codice

grammar Product {
    token TOP { <a> '*' <b> { make $<a>.Int * $<b>.Int } }
    token a   { \d+ }
    token b   { \d+ }
}

say Product.parse('4*5').made;

🦋 Trova il programma nel file multiply-a-pair.raku.

Output

20

Commenti

  1. I due numeri sono catturati come <a> e <b>, ciascuno convertito con .Int.

  2. Il blocco in linea combina le sottocorrispondenze — moltiplicandole — e conserva il risultato sulla corrispondenza, che made restituisce poi.

Moltiplicate una coppia   |   Invertite le parole