Мне нужно будет разбирать частичные SQL-запросы (это для инструмента аудита SQL-инъекций). Например
'1' AND 1=1--
Должен разбиться на токены, например
[0] => [SQL_STRING, '1']
[1] => [SQL_AND]
[2] => [SQL_INT, 1]
[3] => [SQL_AND]
[4] => [SQL_INT, 1]
[5] => [SQL_COMMENT]
[6] => [SQL_QUERY_END]
Являются ли они любыми, по крайней мере, лексерами для SQL, которые я использую для себя или какие-либо хорошие инструменты, такие как bison для С# (хотя я бы предпочел не писать собственную грамматику, поскольку мне нужно поддерживать большинство, если не всю грамматику MySQL 5 )