本文整理汇总了C++中MethodStatementPtr::setLoc方法的典型用法代码示例。如果您正苦于以下问题:C++ MethodStatementPtr::setLoc方法的具体用法?C++ MethodStatementPtr::setLoc怎么用?C++ MethodStatementPtr::setLoc使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MethodStatementPtr
的用法示例。
在下文中一共展示了MethodStatementPtr::setLoc方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: onMethod
void Parser::onMethod(Token &out, Token &modifiers, Token &ret, Token &ref,
Token &name, Token ¶ms, Token &stmt,
bool reloc /* = true */) {
ClassStatementPtr cs = peekClass();
MethodStatementPtr ms = peekFunc()->unsafe_cast<MethodStatement>();
ASSERT(ms);
popFunc();
if (reloc) {
ms->setLoc(popFuncLocation().get());
}
ms->resetLoc(this);
bool hasCallToGetArgs = m_hasCallToGetArgs.back();
m_hasCallToGetArgs.pop_back();
if (ms->hasYield()) {
string closureName = getClosureName();
ms->setName(closureName);
ms->setPublic();
Token new_params;
prepare_generator(this, stmt, new_params, ms->getYieldCount());
StatementListStatementPtr stmts = stmt->getStmtList();
if (stmts) stmts->resetLoc(this);
ms->init(this, ref.num(), new_params->params(), stmts, hasCallToGetArgs);
String clsname = cs->name();
create_generator(this, out, params, name, closureName, clsname.data(),
&modifiers);
} else {
StatementListStatementPtr stmts = stmt->getStmtList();
if (stmts) stmts->resetLoc(this);
ms->init(this, ref.num(), params->params(), stmts, hasCallToGetArgs);
}
cs->addMethod(ms);
}