Perl module for generating recursive-descent parsers