Pas de solution miracle à proposer.
Ne serait-il pas plus simple de répertorier les erreurs que vous estimez "sémantique" et de considérer le reste comme "syntaxique" ?