Хорошо, я изучаю perl6 и пытаюсь сделать что-то действительно простое: использовать грамматику для изменения совпадающего текста в соответствии с объектом действия. Но я потерпел неудачу и не знаю почему. Извините, пожалуйста, за такие простые вопросы. Я не занимаюсь технологиями или программированием. Так что проявите ко мне терпение, хорошо?
Я хочу изменить «янв» на «01» и «февр» на «02»; так просто:
grammar month {
regex TOP { (\s* <mon> \s*)+ }
proto regex mon {*}
regex mon:sym<jan> { <sym> }
regex mon:sym<feb> { <sym> }
}
class monAct {
method TOP ($/) {
make $<mon>.made;
}
method mon:sym<jan> ($/) { make "01"; };
method mon:sym<feb> ($/) { make "02"; };
}
my $m = month.parse("jan feb jan feb", actions => monAct.new);
say $m.made; # it says Nil instead of "01 02 01 02" that I want;
Итак, что я здесь сделал не так? Спасибо.
monAct
вместо экземпляраmonAct.new
в.parse
- person Christoph   schedule 24.11.2016