dburrows/ projects/ aptitude/ todo/ entry/ Use a parser generator to build the matcher parsing.

The matcher parsing currently uses a hand-written recursive descent parser. This is OK, but it makes it unnecessarily difficult to extend the syntax in new directions. It might be worth investigating how hard it would be to use a parser generator to replace aptitude's botique parser, and maybe write a proper EBNF syntax for matchers.

The parser generator could be *shudder* Bison, but surely someone has written something that sucks less in the last 10 years.