A dynamic parser generator for BNF grammars written in Objective-C