void emerson_createTreeMirrorImage(pANTLR3_BASE_TREE ptr) { if(ptr!= NULL && ptr->children != NULL) { ANTLR3_UINT32 n = ptr->getChildCount(ptr); if(n == 1) { emerson_createTreeMirrorImage((pANTLR3_BASE_TREE)(ptr->getChild(ptr, 0))); } if(n == 2) // should it be checked { pANTLR3_BASE_TREE right = (pANTLR3_BASE_TREE)(ptr->getChild(ptr, 1)); emerson_createTreeMirrorImage( (pANTLR3_BASE_TREE)(ptr->getChild(ptr, 0))); emerson_createTreeMirrorImage( (pANTLR3_BASE_TREE)(ptr->getChild(ptr, 1)) ); ptr->setChild(ptr, 1, ptr->getChild(ptr, 0)); ptr->setChild(ptr, 0, right); } } }
static void setChild (pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_TREE t, ANTLR3_UINT32 i, pANTLR3_BASE_TREE child) { t->setChild(t, i, child); }