わかりました、私は 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;
それで、私はここで何を間違えましたか?ありがとう。