Kurso de Raku / Regulesprimoj kaj gramatikoj / Gramatikoj / Ĵetonoj kaj reguloj
regex, token kaj rule
La tri ŝlosilvortoj konstruas unu sur la alia:
regex— retropaŝas, kiel la ŝablonoj en/ … /token— ne retropaŝasrule— kieltoken, sed spacoj en la ŝablono estas signifaj
Retropaŝado signifas, ke kiam posta parto de la ŝablono
malsukcesas, la motoro reiras kaj provas pli mallongan kongruon por pli
frua parto. regex faras tion:
my regex r { \w+ 'b' }
say so 'aaab' ~~ / <r> /; # True\w+ unue kaptas la tutan aaab, poste devas
redoni la lastan b, por ke la laŭlitera b povu
kongrui. token rifuzas redoni ion ajn:
my token t { \w+ 'b' }
say so 'aaab' ~~ / <t> /; # FalseĈi tie \w+ prenas la tutan aaab, la
laŭlitera b trovas nenion restantan, kaj la ĵetono simple
malsukcesas anstataŭ retropaŝi.
Tio sonas kiel limigo, sed por gramatikoj ĝi estas ĝuste tio, kion vi
volas: ĉiu ĵetono kongruu kun unu pura aĵo kaj sin obligu al ĝi. Tio
faras analizadon pli rapida kaj la rezulton antaŭvidebla. Uzu
token defaŭlte; atingu regex nur en
la maloftaj okazoj, kiam vi vere bezonas retropaŝadon.
Praktiko
Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.
Kursa navigado
← Ĵetonoj kaj reguloj | Kvizo — Retropaŝado →
💪 Aŭ iru rekte al la ekzercoj de ĉi tiu
sekcio.