void executeCatStrTmp(Executer &executer) { auto rhs_result = executer.topTmpStr(); executer.pop(); auto lhs_rhs = std::string{*executer.topStr()}; std::swap(lhs_rhs, *rhs_result); executer.setTop(rhs_result); *executer.topTmpStr() += lhs_rhs; }
void executeCatTmpTmp(Executer &executer) { auto rhs = executer.moveTopTmpStr(); executer.pop(); *executer.topTmpStr() += *rhs; }
void executeCatStrStr(Executer &executer) { auto rhs = executer.topStr(); executer.pop(); executer.setTop(*executer.topStr()); *executer.topTmpStr() += *rhs; }