本文整理汇总了C++中SgType::set_parent方法的典型用法代码示例。如果您正苦于以下问题:C++ SgType::set_parent方法的具体用法?C++ SgType::set_parent怎么用?C++ SgType::set_parent使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SgType
的用法示例。
在下文中一共展示了SgType::set_parent方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: translateArrayDeclaration
void Fortran_to_C::translateArrayDeclaration(SgArrayType* originalArrayType)
{
// Get dim_info
SgExprListExp* dimInfo = originalArrayType->get_dim_info();
// Get dim list
SgExpressionPtrList dimExpressionPtrList = dimInfo->get_expressions();
// Get array base_type
SgType* baseType = originalArrayType->get_base_type();
Rose_STL_Container<SgExpression*>::iterator j = dimExpressionPtrList.begin();
SgExpression* indexExpression = getFortranDimensionSize(*j);
//std::cout << "array rank:" << originalArrayType->get_rank() << std::endl;
if(originalArrayType->get_rank() == 1)
{
originalArrayType->set_base_type(baseType);
originalArrayType->set_index(indexExpression);
indexExpression->set_parent(originalArrayType);
constantFolding(indexExpression);
}
else
{
SgArrayType* newType = buildArrayType(baseType,indexExpression);
baseType->set_parent(newType);
j = j + 1;
for(; j< (dimExpressionPtrList.end()-1); ++j)
{
indexExpression = getFortranDimensionSize(*j);
baseType = newType;
newType = buildArrayType(baseType,indexExpression);
baseType->set_parent(newType);
}
j = dimExpressionPtrList.end()-1;
indexExpression = getFortranDimensionSize(*j);
originalArrayType->set_base_type(newType);
originalArrayType->set_index(indexExpression);
indexExpression->set_parent(originalArrayType);
}
}