Du kan prova en formatterare som denna
De kommer alltid att vara begränsade eftersom de inte (och kan) inte veta vilka användardefinierade funktioner du kan ha definierat i din databas (eller vilka inbyggda funktioner du har eller inte har tillgång till).
Du kan också titta på ANTLR (men det skulle vara en offlinelösning)