本文整理汇总了C++中AST::type方法的典型用法代码示例。如果您正苦于以下问题:C++ AST::type方法的具体用法?C++ AST::type怎么用?C++ AST::type使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AST
的用法示例。
在下文中一共展示了AST::type方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _varcnt_
size_t CFG::_varcnt_(void) {
size_t cnt = 0;
for (ssize_t i = 0; i < this->length(); ++i) {
AST *child = (AST *)this->child(i);
switch(child->type()) {
case AST_ASSIGN:
if (0 != child->length() && 0 == child->child(0)->length()) {
cnt ++;
}
break;
case AST_FUNC:
if (0 != child->length() && 0 != child->child(0)->length()) {
cnt += child->child(0)->child(0)->length();
}
break;
default:
_D(LOG_DEBUG, "Need NOT count on %s", child->data().c_str());
break;
}
}
cnt += (NULL == this->nextCFG(true) ? 0 : this->nextCFG(true)->_varcnt_());
cnt += (NULL == this->nextCFG(false) ? 0 : this->nextCFG(false)->_varcnt_());
return cnt;
}
示例2: kDebug
template <typename T> T* BuildASTVisitor::stackPop()
{
if( aststack.isEmpty() )
{
kDebug(9024) << kBacktrace();
kFatal(9024) << "ERROR: AST stack is empty, this should never happen";
exit(255);
}
AST* tmp = aststack.pop();
T* ast = dynamic_cast<T*>(tmp);
if( !ast )
{
kDebug(9024) << kBacktrace();
kFatal(9024) << "ERROR: AST stack is screwed, doing a hard exit" << tmp->type();
exit(255);
}
return ast;
}