Cmd* Parser::parse_statement() { Cmd* result = parse_expression(); while (tokenizer.has_another() && !tokenizer.next_is_end_token()) { result->add_arg( parse_expression() ); } result = new(result) CmdEvaluateAndDiscard( result ); return result; }