Parse::Recdescent match word exactly with regular expressions


ccm news


( using parse::recdescent 1.94 )
I want to parse a string and search for a word (and exactly this word). I
use the following grammar:

my $grammar = <<'_EOGRAMMAR_';

any : /[a-zA-Z0-9\d\., +-]+/

cmd_unknown : any(s)
{ main::cmd_unknown(); $return = 1;}

cmd_doit : /doit/
{ main::cmd_doit(); $return = 1; }

cmd : cmd_doit
| cmd_unknown

startrule: <skip: qr/[ \t]*/> cmd


The input "doit\r\n" works and executes the cmd_doit. But using the string
"doitnow\r\n" as input it also executes the cmd_doit function.

I want something like:

cmd_doit : /^doit$/ # saying the sentence must begin and end with doit. but
this syntax doesnt work?!

Any suggestions?

Thanx for your time.


Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question