Kurso de Raku / Regulesprimoj kaj gramatikoj / Gramatikoj / Ĵetonoj kaj reguloj / Exercises / Valorizo kun spacoj
Solvo: Valorizo kun spacoj
Jen ebla solvo de la tasko.
Kodo
grammar Assign {
rule TOP { <key> '=' <value> }
token key { \w+ }
token value { \w+ }
}
say Assign.parse('x = 5').defined;🦋 Vi povas trovi la fontkodon en la dosiero spaced-assignment.raku.
Eligo
TrueKomentoj
Ĉar
TOPestasrule, la spacoj en la ŝablono permesas blankspacon ĉirkaŭ la=en la enigo.Do
'x = 5'analiziĝas. KuntokenporTOP, nur'x=5'kongruus.
La blankspaco, kiun rule permesas, estas
nedeviga, ne postulata: la signifa spaco kongruas kun
nul spacoj same volonte kiel kun unu, do la sen-spaca formo
ankaŭ analiziĝas:
say Assign.parse('x=5').defined; # TrueLa rule do akceptas 'x = 5',
'x=5' kaj eĉ 'x =5' egale — fleksebleco sen
literumi, kie spaco rajtas aŭ ne rajtas esti.