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