Raku kurss / Regulārās izteiksmes un gramatikas / Gramatikas / Gramatiku veidošana

Parsēšana ar parse

Lai gramatiku palaistu, izsauciet tās metodi .parse ar analizējamo virkni:

grammar Pair {
    token TOP   { <key> '=' <value> }
    token key   { \w+ }
    token value { \w+ }
}

my $m = Pair.parse('x=5');
say $m<key>;   # 「x」
say $m<value>; # 「5」

.parse atgriež sakritības objektu, kad gramatika sakrīt ar visu virkni, un Nil, kad nesakrīt. Tā kā jāsakrīt visai ievadei, enkuri ^ un $ nav vajadzīgi — .parse šo prasību pievieno jūsu vietā:

say Pair.parse('x=5').defined; # True
say Pair.parse('x=').defined;  # False

Sakritības objekts darbojas gluži tāpat kā tie, ar kuriem sastapāties agrāk. Katrs gramatikā izmantotais marķieris kļūst par nosauktu tvērumu, tāpēc $m<key> un $m<value> dod sakritušās daļas. Marķieri ligzdojas, tāpēc gramatika uzbūvē nelielu sakritību koku — vēlākas sadaļas priekšmetu.

Prakse

Jūs gaida 1 viktorīna par šī temata saturu.

Kursa navigācija

Likums TOP   |   Viktorīna — Gramatiku veidošana


💪 Vai arī dodieties tieši uz šīs sadaļas vingrinājumiem.