Cursus Raku / Expressiones regulares et grammaticae / Grammaticae / Grammaticas creare / Exercises / Horam analysa
Solutio: Horam analysa
Ecce solutio possibilis huius exercitationis.
Codex
grammar Time {
token TOP { <hour> ':' <minute> ':' <second> }
token hour { \d ** 2 }
token minute { \d ** 2 }
token second { \d ** 2 }
}
say Time.parse('09:30:45')<second>;🦋 Inveni codicem fontem in archivo parse-a-time.raku.
Exitus
「45」Commentarii
TOPtotam horam ut tres tesseras colis separatas describit. Unaquaeque pars est\d ** 2— exacte duae cifrae — potius quam apertum\d+, itaque valor male formatus qualis09:30:456reicitur. (Si pars sine nulla praefixa esse potest, ut hora in9:30:45, scribe\d ** 1..2ut unam vel duas cifras permittas.)Post analysin unaquaeque tessera captura nominata est, itaque secundum ut
<second>in congruentia legitur. Tertiam partem addere est una tessera amplius et unum colon amplius — grammatica naturaliter crescit.