Tôi không biết perl 5, nhưng tôi nghĩ rằng tôi muốn chơi với perl 6. Tôi đang thử khả năng ngữ pháp của nó, nhưng cho đến nay tôi không có may mắn. Dưới đây là mã của tôi cho đến nay:Tại sao ngữ pháp này không hoạt động?
grammar CopybookGrammar {
token TOP { {say "at TOP" } <aword><num>}
token aword { {say "at word" } [a..z]+ }
token num { {say "at NUM" } [0..9]+ }
}
sub scanit($contents) {
my $match1 = CopybookGrammar.parse($contents);
say $match1;
}
scanit "outline1";
Đầu ra là như sau:
at TOP
at word
(Any)
Đối với một số lý do, nó không xuất hiện để phù hợp với các quy tắc <num>
. Ý tưởng nào?
Mô-đun chị em cho Ngữ pháp :: Trình gỡ lỗi ** Ngữ pháp :: Tracer ** từ cùng một vị trí như Grammar :: Debugger. 'sử dụng Grammar :: Tracer;' và bạn sẽ nhận được một dấu vết của ngữ pháp chạy với dữ liệu đầu vào. – donaldh