本文整理汇总了C++中TypeAnnotationPtr::outputCodeModel方法的典型用法代码示例。如果您正苦于以下问题:C++ TypeAnnotationPtr::outputCodeModel方法的具体用法?C++ TypeAnnotationPtr::outputCodeModel怎么用?C++ TypeAnnotationPtr::outputCodeModel使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TypeAnnotationPtr
的用法示例。
在下文中一共展示了TypeAnnotationPtr::outputCodeModel方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: outputCodeModel
void TypeAnnotation::outputCodeModel(CodeGenerator& cg) {
TypeAnnotationPtr typeArgsElem = m_typeArgs;
auto numTypeArgs = 0;
while (typeArgsElem != nullptr) {
numTypeArgs++;
typeArgsElem = typeArgsElem->m_typeList;
}
typeArgsElem = m_typeArgs;
auto numProps = 1;
if (m_nullable) numProps++;
if (m_soft) numProps++;
if (m_function) numProps++;
if (numTypeArgs > 0) numProps++;
cg.printObjectHeader("TypeExpression", numProps);
cg.printPropertyHeader("name");
cg.printValue(m_tuple ? "tuple" : m_name);
if (m_nullable) {
cg.printPropertyHeader("isNullable");
cg.printBool(true);
}
if (m_soft) {
cg.printPropertyHeader("isSoft");
cg.printBool(true);
}
if (m_function) {
cg.printPropertyHeader("returnType");
typeArgsElem->outputCodeModel(cg);
typeArgsElem = typeArgsElem->m_typeList;
numTypeArgs--;
}
if (numTypeArgs > 0) {
cg.printPropertyHeader("typeArguments");
cg.printf("V:9:\"HH\\Vector\":%d:{", numTypeArgs);
while (typeArgsElem != nullptr) {
typeArgsElem->outputCodeModel(cg);
typeArgsElem = typeArgsElem->m_typeList;
}
cg.printf("}");
}
cg.printObjectFooter();
}