Avrei bisogno di analizzare query SQL parziali (è per uno strumento di controllo dell'iniezione SQL). Per esempioSQL parziale di Lexing in C#
'1' AND 1=1--
dovesse rompere verso il basso in token come
[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]
Sono loro qualsiasi almeno lexer per SQL che Baso la mia off del o dei buoni strumenti come il bisonte per C# (anche se preferirei non scrivere la mia grammatica in quanto ho bisogno di supportare la maggior parte se non tutta la grammatica di MySQL 5)
Sede [parsing del codice SQL in C#] (http://stackoverflow.com/questions/589096/parsing-sql-code-in-c) e [Parsing SQL NET] (http://stackoverflow.com/questions/76083/parsing-sql-in-net). –
Non si desidera scrivere da solo un parser SQL per un vero dialetto SQL come MySQL. Ottieni un'implementazione da un fornitore che la fornisce. –
Come descritto in questa risposta: http://stackoverflow.com/questions/76083/parsing-sql-in-net/76151#76151, si potrebbe semplicemente usare ANTLR, un generatore di parser OO, e usare il file dialetto MySQL da qui : http://www.antlr.org/grammar/list. Pronto all'uso. –