Zebediah Figura (@zfigura) commented about dlls/msado15/filter.l:
+"(" { /* Ignored for now */ } +")" { /* Ignored for now */ }
+"=" { yylval->ival = op_equal; return TOKEN_EQ; } +">" { yylval->ival = op_greater; return TOKEN_GREATER; } +"<" { yylval->ival = op_less; return TOKEN_LESS; } +"<>" { yylval->ival = op_not_equal; return TOKEN_NOT_EQ; } +">=" { yylval->ival = op_greater_equal; return TOKEN_GREATER_EQ; } +"<=" { yylval->ival = op_less_equal; return TOKEN_LESS_EQ; } +"like" { yylval->ival = op_like; return TOKEN_LIKE; }
+"and" { yylval->ival = join_and; return TOKEN_AND; } +"or" { yylval->ival = join_or; return TOKEN_OR; }
+[A-Za-z_0-9.]* { yylval->token = strdup(yytext); return TOKEN_COLUMN; }
This is a bit suspicious; is this really the column rules? Note that this will match things like "..." or "0a". I don't know SQL syntax, though, so maybe this is correct...
The lack of tests is a bit concerning.