本文整理汇总了C++中pANTLR3_BASE_TREE::setChildIndex方法的典型用法代码示例。如果您正苦于以下问题:C++ pANTLR3_BASE_TREE::setChildIndex方法的具体用法?C++ pANTLR3_BASE_TREE::setChildIndex怎么用?C++ pANTLR3_BASE_TREE::setChildIndex使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pANTLR3_BASE_TREE
的用法示例。
在下文中一共展示了pANTLR3_BASE_TREE::setChildIndex方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
/** Transform ^(nil x) to x
*/
static pANTLR3_BASE_TREE
rulePostProcessing (pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_TREE root)
{
pANTLR3_BASE_TREE saveRoot;
// Keep track of the root we are given. If it is a nilNode, then we
// can reuse it rather than orphaning it!
//
saveRoot = root;
if (root != NULL && root->isNilNode(root))
{
if (root->getChildCount(root) == 0)
{
root = NULL;
}
else if (root->getChildCount(root) == 1)
{
root = (pANTLR3_BASE_TREE)root->getChild(root, 0);
root->setParent(root, NULL);
root->setChildIndex(root, -1);
// The root we were given was a nil node, wiht one child, which means it has
// been abandoned and would be lost in the node factory. However
// nodes can be flagged as resuable to prevent this terrible waste
//
saveRoot->reuse(saveRoot);
}
}
return root;
}
示例2:
/** Transform ^(nil x) to x
*/
static pANTLR3_BASE_TREE
rulePostProcessing (pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_TREE root)
{
if (root != NULL && root->isNilNode(root))
{
if (root->getChildCount(root) == 0)
{
root = NULL;
}
else if (root->getChildCount(root) == 1)
{
root = root->getChild(root, 0);
root->setParent(root, NULL);
root->setChildIndex(root, -1);
}
}
return root;
}
示例3:
static void
setChildIndex (pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_TREE t, ANTLR3_INT32 i)
{
t->setChildIndex(t, i);
}