本文整理汇总了C++中AstNode::isReturnNode方法的典型用法代码示例。如果您正苦于以下问题:C++ AstNode::isReturnNode方法的具体用法?C++ AstNode::isReturnNode怎么用?C++ AstNode::isReturnNode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AstNode
的用法示例。
在下文中一共展示了AstNode::isReturnNode方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: visitBlockNode
virtual void visitBlockNode(BlockNode * node) {
if (currentTabNum >= 0) {
out<< "{"<< endl;
}
++currentTabNum;
visitScope(node->scope());
for (size_t i = 0; i < node->nodes(); ++i) {
addIndent();
AstNode * currentNode = node->nodeAt(i);
currentNode->visit(this);
if (currentNode->isCallNode() ||
currentNode->isLoadNode() ||
currentNode->isNativeCallNode() ||
currentNode->isPrintNode() ||
currentNode->isReturnNode() ||
currentNode->isStoreNode()) {
out<< ";"<< endl;
}
}
--currentTabNum;
if (currentTabNum >= 0) {
addIndent();
out<< "}"<< endl;
}
}
示例2: processBlockNode
void BytecodeTranslatorVisitor::processBlockNode(BlockNode* node) {
for (uint32_t i = 0; i < node->nodes(); i++) {
AstNode* ith = node->nodeAt(i);
warningIf(isUnused(ith), "unused result of statement");
VISIT(ith);
VarType result = popType();
if (result != VT_VOID && !ith->isReturnNode())
EMIT(BC_POP);
}
}
示例3: visitBlockNode
virtual void visitBlockNode(BlockNode *node)
{
bool topLevel = node->scope()->parent()->parent() == NULL;
if (!topLevel) {
out << "{" << endl;
}
printVars(node->scope());
for (uint32_t i = 0; i < node->nodes(); i++) {
AstNode *currentNode = node->nodeAt(i);
currentNode->visit(this);
if (currentNode->isLoadNode() || currentNode->isStoreNode() ||
currentNode->isReturnNode() || currentNode->isCallNode() ||
currentNode->isNativeCallNode() || currentNode->isPrintNode()) {
out << ";" << endl;
}
}
if (!topLevel) {
out << "}" << endl;
}
}