本文整理汇总了C++中ASTType::getKind方法的典型用法代码示例。如果您正苦于以下问题:C++ ASTType::getKind方法的具体用法?C++ ASTType::getKind怎么用?C++ ASTType::getKind使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ASTType
的用法示例。
在下文中一共展示了ASTType::getKind方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: visit
void CodeGeneratorVisitor::visit(const ASTCast& ast)
{
ast.getNode().accept(*this);
ASTType from = mCurrentType;
mCurrentType = ast.getType();
// add cast instruction
if ( mCurrentType.isObject() )
{
}
else if ( mCurrentType.isArray() )
{
}
else
{
switch ( from.getKind() )
{
case ASTType::eBoolean:
if ( mCurrentType.isString() )
mBuilder.emit(CIL_bconv_str);
break;
case ASTType::eInt:
if ( mCurrentType.isReal() )
mBuilder.emit(CIL_iconv_real);
else if ( mCurrentType.isString() )
mBuilder.emit(CIL_iconv_str);
break;
case ASTType::eReal:
if ( mCurrentType.isInt() )
mBuilder.emit(CIL_rconv_int);
else if ( mCurrentType.isString() )
mBuilder.emit(CIL_rconv_str);
break;
case ASTType::eChar:
if ( mCurrentType.isString() )
mBuilder.emit(CIL_cconv_str);
break;
case ASTType::eString:
if ( mCurrentType.isBoolean() )
mBuilder.emit(CIL_sconv_bool);
else if ( mCurrentType.isInt() )
mBuilder.emit(CIL_sconv_int);
else if ( mCurrentType.isReal() )
mBuilder.emit(CIL_rconv_str);
break;
default:
break;
}
}
}