本文整理汇总了C++中ExpressionPtr::outputPHP方法的典型用法代码示例。如果您正苦于以下问题:C++ ExpressionPtr::outputPHP方法的具体用法?C++ ExpressionPtr::outputPHP怎么用?C++ ExpressionPtr::outputPHP使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ExpressionPtr
的用法示例。
在下文中一共展示了ExpressionPtr::outputPHP方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: outputPHP
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(")");
}
示例2: outputPHP
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);
}
}
}