Курс Raku / Регулярні вирази та граматики / Граматики / Токени та правила / Вправи / Присвоєння з пробілами
Розв’язання: Присвоєння з пробілами
Ось одне з можливих розв’язань задачі.
Код
grammar Assign {
rule TOP { <key> '=' <value> }
token key { \w+ }
token value { \w+ }
}
say Assign.parse('x = 5').defined;🦋 Знайдіть програму у файлі spaced-assignment.raku.
Вивід
TrueКоментарі
Оскільки
TOPєrule, пробіли в шаблоні дозволяють пробільні символи навколо=у вхідному тексті.Тож
'x = 5'розбирається. ЯкбиTOPбувtoken, підійшло б лише'x=5'.
Пробіли, які дозволяє rule, є
необов’язковими, а не обов’язковими: значущий пробіл
так само радо зіставляється з нулем пробілів, як і з одним, тож
форма без пробілів теж розбирається:
say Assign.parse('x=5').defined; # TrueТому rule однаково приймає і 'x = 5', і
'x=5', і навіть 'x =5' — гнучкість без потреби
розписувати, де саме пробіл може бути, а де ні.
Навігація курсом
← Присвоєння з пробілами | Граматики, класи та успадкування →