Parser implementation. Given up from Baker.