SBFR: A Search-Based Approach for Reproducing Failures of Programs with Grammar Based Input