Lexer and recursive descent parser for a small grammar, written in Objective-C.