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