This parser is a recursive-descent, infinite-lookahead parser (everything the Dragon Book tells you not to do), written in the course of a few hours of inspiration in December 1997.
The parser will give you ONE parse error, and if all parse is successful, it will list the rules it parsed, and make comments about undefined symbols.
The whole thing is available as a tar.gz file.
If you want to look at components, you can see:
Another attempt at an ABNF-understanding tool is Chris Newman's parser at http://www.innosoft.com/iii/persons/chris/programs/abnf.c.