A top-down, grammar-based time expression parser written in Objective-C