I'm pretty sure that there's no such thing.
The ability to tell which code can or cannot be synthesized to real logic is an integral ability of any synthesis tool - once the tool sees something "illegal" the implementation process stops with an error.
It certainly doesn't separate synthesizable and non synthesizable logic apart - this is your job.