本文整理汇总了C++中AstNode::isCallNode方法的典型用法代码示例。如果您正苦于以下问题:C++ AstNode::isCallNode方法的具体用法?C++ AstNode::isCallNode怎么用?C++ AstNode::isCallNode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AstNode
的用法示例。
在下文中一共展示了AstNode::isCallNode方法的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: insideBlock
void insideBlock(BlockNode* node) {
variableDeclaration(node->scope());
functionDeclaration(node->scope());
for (uint32_t i = 0; i < node->nodes(); i++) {
indent();
AstNode* current = node->nodeAt(i);
current->visit(this);
if (current->isCallNode() || current->isBinaryOpNode() ||
current->isUnaryOpNode() || current->isStringLiteralNode() ||
current->isDoubleLiteralNode() || current->isIntLiteralNode() ||
current->isLoadNode())
_output << ";";
_output << endl;
}
}
示例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;
}
}