Cursus Raku / Expressiones regulares et grammaticae / Grammaticae / Classes actionum / Exercises / Una grammatica, duae classes actionum
Solutio: Una grammatica, duae classes actionum
Ecce solutio possibilis huius exercitationis.
Codex
grammar Pair {
token TOP { <a> ',' <b> }
token a { \d+ }
token b { \d+ }
}
class Sum { method TOP($/) { make $<a>.Int + $<b>.Int } }
class Diff { method TOP($/) { make $<a>.Int - $<b>.Int } }
say Pair.parse('10,20', actions => Sum.new).made;
say Pair.parse('10,20', actions => Diff.new).made;🦋 Inveni codicem fontem in archivo two-actions.raku.
Exitus
30
-10Commentarii
Grammatica solum formam
numerus,numerusdescribit; nihil scit de eo quid computandum sit.Duae classes actionum diversas significationes eidem analysi adfigunt — una numeros summat, altera eos subtrahit. Aliud obiectum
actionsad.parsetradere satis est ut alium effectum accipias, sine grammatica omnino mutata.
Navigatio cursus
← Una grammatica, duae classes actionum | Diem homini legibilem redde →