bnf2xml
simple BNF parser makes xml markup of matches
... in haystack and what to show, ie:
<alph> ::= a | b | c | d ...
<word> ::= <alph>+
bnf2xml is a top down recursive parser. Unlike buttom up parsers like gcc(1) or some top downs, bnf2xml is completely unambiguous / resolves ALL conflicts. Slower on ave. for parsing C or than sed(1) for simple searches. Far easier than using flex/C to create a parser.
caveate: I do not suggest it's worth while to make a new gcc(1) using bnf2xml. bnf2xml an nth BETA release, but no complains yet.