ExpPtr parseCall (Lexer& lex, ExpPtr in) { auto args = parseTuple(lex); ExpList exps; exps.reserve(args->subexps.size() + 1); exps.push_back(in); exps.insert(exps.end(), args->subexps.begin(), args->subexps.end()); return Exp::make(eCall, exps, in->span + args->span); }
void TreePrinter::printExpList(const ExpList &elist) { ExpList::const_iterator it = elist.begin(); while (it != elist.end()) { TreePrinter treePrinter; (*it)->accept(&treePrinter); DBG("-----\n"); DBG("%s\n", treePrinter.result.c_str()); ++it; } }