本文整理汇总了C++中ASTType::setObjectClass方法的典型用法代码示例。如果您正苦于以下问题:C++ ASTType::setObjectClass方法的具体用法?C++ ASTType::setObjectClass怎么用?C++ ASTType::setObjectClass使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ASTType
的用法示例。
在下文中一共展示了ASTType::setObjectClass方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: visit
void SymbolCheckVisitor::visit(ASTForeach& ast)
{
ScopedScope scope(mScopeStack);
ASTVariable& iteratorvar = ast.getIteratorVariable();
ASTVariable& var = ast.getVariable();
if ( var.hasInit() )
{
ASTVariableInit& varinit = var.getInit();
varinit.getExpression().accept(*this);
ASTClass& iterableclass = mContext.resolveClass(UTEXT("engine.collections.Iterable"));
ASTType* piteratortype = new ASTType();
if ( mCurrentType.isObject() )
{
if( mCurrentType.getObjectClass().isImplementing(iterableclass) )
{
piteratortype->setKind(ASTType::eObject);
piteratortype->setObjectClass(iterableclass);
}
else
{
error(E0009, UTEXT("Container ") + var.getName() + UTEXT(" must be iterable for use in foreach."), ast);
}
}
else if ( mCurrentType.isArray() )
{
piteratortype->setKind(ASTType::eInt);
}
iteratorvar.setType(piteratortype);
}
else
{
error(E0010, UTEXT("Missing required initializer for foreach variable ") + var.getName(), ast);
}
mpFunction->addLocal(iteratorvar.getType().clone());
mpFunction->addLocal(var.getType().clone());
ScopeVariable* pvariable = ScopeVariable::fromVariable(var);
mScopeStack.add(pvariable);
ast.getBody().accept(*this);
}