kudra has asked for the wisdom of the Perl Monks concerning the following question:
It's been a few years since I used Parse::RecDescent, so it might be that my expectations are wrong, but I was under the impression that once some text had matched a rule, that same text would not be used to match a subsequent rule.
Excluding the actions that I take (printing the result) and the subrules (which are all regexes), the relationship between the rules is this:
Most of my test cases match the 'index pre risk' pattern, often using the same pre# rule for both the index and pre matches. However, in 8 out of my 100 cases, the index and pre match are matching exactly the same line (as seen in both the output and $thisline).start : (index pre risk) | (pre risk) risk : (risk1 | risk2) index : (pre1 | pre2 | pre3) pre : (pre1 | pre2 | pre3)
Perhaps someone more familiar with P::RD could tell me if this is something they've seen before, and how I might prevent it.
Update: I do have a minimal test case, but because the sample data file is so large I don't want to attach it to this post.
|Replies are listed 'Best First'.|
Re: Parse::RecDescent matching same line twice
by ikegami (Patriarch) on Mar 01, 2009 at 18:12 UTC
by kudra (Vicar) on Mar 01, 2009 at 20:24 UTC
by ikegami (Patriarch) on Mar 01, 2009 at 20:59 UTC
Back to Seekers of Perl Wisdom