I doubt you're going to find an all-purpose tool.
Much of static analysis depends on far more than lexical and grammatical compliance.
A good static analyzer is going to have extra-contextual knowledge of the language and its implementation. It may also include a simulator that keeps track of state and multiple execution paths. Additionally, it may be aware of patterns and practices, as well as certain libraries and calls.
For instance, in C, this code if ( x = 3 ) { /*Do something*/ }
is perfectly legal, although the programmer may have intended ==
. Or, one might do printf("%s", longVal);
, and while arbitrary values can be shoved on the stack, that specific call may have other expectations based on initial values passed to it.
Bottom line, there'd be so much for a generic lint application to know, not to mention that languages and libraries are a moving target, that if such a beast did exist it'd be either way too complicated or way too underpowered for practical application than a cheaper tool that did a language-specific job better.