Context-free grammars: Covers, normal forms, and parsing