Kurso de Raku / Regulesprimoj kaj gramatikoj / Gramatikoj / La analizarbo, make kaj made
La kongruarbo
Gramatika kongruo estas arbo. La supra kongruo havas nomitan eron por
ĉiu ĵetono, kiun TOP uzis, kaj tiuj eroj mem estas kongruaj
objektoj kun siaj propraj kaptoj. Vi navigas la arbon per la sama
sintakso <name>, kiun vi uzas por nomitaj kaptoj:
grammar Pair {
token TOP { <key> '=' <value> }
token key { \w+ }
token value { \d+ }
}
my $m = Pair.parse('x=5');
say $m<key>; # 「x」
say $m<value>; # 「5」Ĉiu branĉo estas plena kongrua objekto, do vi povas peti al ĝi sian
.Str, sian pozicion, aŭ konverti ĝin. Ĉi tie la valoro
estas ciferoj, do transformi ĝin en veran nombron estas nur
metodvoko:
say $m<value>.Int; # 5Por pli profundaj gramatikoj la arbo havas pli da niveloj —
$m<a><b> atingas ĵetonon b uzatan
ene de ĵetono a. Trairi la arbon tiel funkcias, sed por io
ajn preter kelkaj kampoj ĝi fariĝas mallerta. La sekva temo montras pli
puran manieron alfiksi la valoron, kiun vi efektive volas, al ĉiu
kongruo.
Praktiko
Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.
Kursa navigado
← La analizarbo, make kaj made | Kvizo — La kongruarbo →
💪 Aŭ iru rekte al la ekzercoj de ĉi tiu
sekcio.