Zebediah Figura (@zfigura) commented about dlls/msado15/filter.l:
}
+\n { return T_NEWLINE;} +"(" { /* 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; }
The ival seems redundant with the token value; you should only need the latter.
The quotes around simple string tokens seem a little redundant.