PyParser seems to be a good alternative for parsing SQLLite statements. Refer state diagrams of SQLLite at: http://www.sqlite.org/lang_select.html
Notes on parsing issues
SQLite SQL has some pretty atrocious deviations from the SQL we all know and love. These deviations are being used. For the purpose of completeness, the 'surprising' language features that are allowed are documented here.
[ Bracket ]notation for identifiers. Appears in table names, column names, and a variety of other things.
NOT IN ()(empty list) is permitted (if silly)
IN tableNameis a valid shorthand for
IN (SELECT * FROM tableName)