Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re^2: Parse::Recdescent optional subrule commit

by campugnatus (Initiate)
on Apr 30, 2012 at 12:52 UTC ( #968051=note: print w/replies, xml ) Need Help??

in reply to Re: Parse::Recdescent optional subrule commit
in thread Parse::Recdescent optional subrule commit

Thanks for your attention!

I don't see anything that looks like a bug here. Your program prints "WHAT ()!" and that is exactly what it should print when parsing "stuff ID something". Due to presence of 'ID' after 'stuff', mysubrule gets committed, therefore not increasing $failed but triggering <error?> instead.

Anyway, that is not the case. As far as I see, my example works exactly as it is written, no unexpected behavior. However, that behaviour is not the one that solves the question that bothers me and the one asked in the FAQ.

This is not even about <reject>, it is about the fact that $failed is increased only when mysubrule is NOT committed. And that seems just pointless! I think that $failed should only be increased when mysubrule gets committed and fails afterwards. I.e. <error?> and {$failed++} should happen simultaneously, and only that way. And I don't see any way to make that happen.

  • Comment on Re^2: Parse::Recdescent optional subrule commit

Replies are listed 'Best First'.
Re^3: Parse::Recdescent optional subrule commit
by Anonymous Monk on Apr 30, 2012 at 13:29 UTC

    I suspected I was completely off base :)

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://968051]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (4)
As of 2018-05-26 18:25 GMT
Find Nodes?
    Voting Booth?