Move toward a recursive descent parser for option parsing