私はperl6を学んでいます。私は何か本当に簡単なことをしようとしています。文法を使ってアクションオブジェクトに従って一致するテキストを変更します。しかし、私は失敗し、私は理由を知らない。このような簡単な質問のために私を許してください。私はテクノロジー業界やプログラミング業界にはいない。だから、私と一緒に忍耐してください、大丈夫ですか?perl6文法を代用する
「jan」を01に、「feb」を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;
私はここで何をやったのですか?ありがとう。
ノートを取得するには
>>
またはmap
を使用することができますする '.parse ' – Christoph