Parse::RecDescent is a Perl library that allows me to quickly and efficiently define and stub a parser / interpreter for random DSL's that I'd like to use. My previous post touched on the subject of parsing SQL, but it turns out that module is practically impossible to extend. So I won't.
SQL::Parser is a pure-perl library that, sort of, parses generic SQL strings into a pseudo-AST, in the form of a nested hash.
Since all the cool kids in town (I'm looking at you, Atlassian) are developing in-house query languages to ease searching and database-poking from an end-user perspective, at my job we thought the same thing. Thus was born xQL (replace x with the first letter of your product).