void SimpleFunctionCall::outputPHP(CodeGenerator &cg, AnalysisResultPtr ar) { outputLineMap(cg, ar); if (!m_className.empty()) { cg.printf("%s::%s(", m_className.c_str(), m_name.c_str()); } else { if (cg.getOutput() == CodeGenerator::InlinedPHP || cg.getOutput() == CodeGenerator::TrimmedPHP) { if (cg.getOutput() == CodeGenerator::TrimmedPHP && cg.usingStream(CodeGenerator::PrimaryStream) && Option::DynamicFunctionCalls.find(m_name) != Option::DynamicFunctionCalls.end()) { int funcNamePos = Option::DynamicFunctionCalls[m_name]; if (m_params && m_params->getCount() && m_params->getCount() >= funcNamePos + 1) { if (funcNamePos == -1) funcNamePos = m_params->getCount() - 1; ExpressionPtr funcName = (*m_params)[funcNamePos]; if (!funcName->is(Expression::KindOfScalarExpression)) { cg.printf("%s(", m_name.c_str()); for (int i = 0; i < m_params->getCount(); i++) { if (i > 0) cg.printf(", "); if (i == funcNamePos) { cg.printf("%sdynamic_load(", Option::IdPrefix.c_str()); funcName->outputPHP(cg, ar); cg.printf(")"); } else { ExpressionPtr param = (*m_params)[i]; if (param) param->outputPHP(cg, ar); } } cg.printf(")"); return; } } } /* simptodo: I dunno if (m_type == RenderTemplateFunction && !m_template.empty()) { cg.printf("%s_%s(", m_name.c_str(), Util::getIdentifier(m_template).c_str()); } else if (m_type == RenderTemplateIncludeFunction) { string templateName = ar->getProgram()->getCurrentTemplate(); cg.printf("%s_%s(", m_name.c_str(), Util::getIdentifier(templateName).c_str()); } else { */ cg.printf("%s(", m_name.c_str()); //} } else { cg.printf("%s(", m_name.c_str()); } } if (m_params) m_params->outputPHP(cg, ar); cg.printf(")"); }
void ExpressionList::outputPHP(CodeGenerator &cg, AnalysisResultPtr ar) { for (unsigned int i = 0; i < m_exps.size(); i++) { if (i > 0) cg_printf(", "); ExpressionPtr exp = m_exps[i]; if (exp) { if (exp->hasContext(RefParameter)) { cg_printf("&"); } exp->outputPHP(cg, ar); } } }