Kurso de Raku / Regulesprimoj kaj gramatikoj / Gramatikoj / Kio estas gramatiko
La ŝlosilvorto grammar
Gramatiko grupigas nomitajn regulesprimojn sub unu nomo,
multe kiel klaso grupigas metodojn. Vi deklaras ĝin per la ŝlosilvorto
grammar:
grammar Greeting {
token TOP { 'Hello, ' <name> '!' }
token name { \w+ }
}Ene de la gramatiko, ĉiu nomita ŝablono estas skribata per
token (speco de regulesprimo, kiun vi studos detale
baldaŭ). Unu ĵetono, laŭ konvencio nomata TOP, estas la
deirpunkto — ĝi priskribas la tutaĵon. Ĉi tie TOP diras «la
teksto estas Hello,, poste nomo, poste !», kaj
name diras, kiel nomo aspektas.
La ĵetonoj povas referenci unu la alian laŭ nomo, ekzakte kiel la nomitaj
regulesprimoj de la antaŭa temo. TOP uzas
<name>, kio tenas la gramatikon legebla: ĉiu regulo
havas unu klaran laboron.
Por ruli gramatikon kontraŭ ĉeno, voku ĝian metodon
.parse:
my $m = Greeting.parse('Hello, Anna!');
say $m<name>; # 「Anna」La sekva sekcio rigardas TOP kaj .parse pli
detale. Nun, la ideo por kunporti estas simpla: gramatiko estas
nomita kolekto de nomitaj regulesprimoj, kiuj kune priskribas tutan
pecon de strukturita teksto.
Praktiko
Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.
Kursa navigado
← Kvizo — Nomitaj regulesprimoj | Kvizo — Kio estas gramatiko →
💪 Aŭ iru rekte al la ekzercoj de ĉi tiu
sekcio.