void BinaryCompArithOpAST::renameAttrRef(const SchemaMapString* schemaMap) { RefAST childAST = getFirstChild(); assert (childAST); (RefBasicAST(childAST))->renameAttrRef(schemaMap); if (childAST->getNextSibling()) { (RefBasicAST(childAST->getNextSibling()))->renameAttrRef(schemaMap); } }
void BinaryCompArithOpAST::getReferredAttributes(set<string>& referredAttrs) { RefAST childAST = getFirstChild(); assert (childAST); (RefBasicAST(childAST))->getReferredAttributes(referredAttrs); if (childAST->getNextSibling()) { (RefBasicAST(childAST->getNextSibling()))-> getReferredAttributes(referredAttrs); } }
void BinaryCompArithOpAST::write(ostream& out) { RefAST childAST = getFirstChild(); assert (childAST); (RefBasicAST(childAST))->write(out); out<<getText(); if (childAST->getNextSibling()) { (RefBasicAST(childAST->getNextSibling()))->write(out); } }
t = t->right; n++; } return n; } return n; } void BaseAST::doWorkForFindAll( ANTLR_USE_NAMESPACE(std)vector<RefAST>& v, RefAST target,bool partialMatch) { // Start walking sibling lists, looking for matches. for (RefAST sibling=this; sibling; sibling=sibling->getNextSibling()) { if ( (partialMatch && sibling->equalsTreePartial(target)) || (!partialMatch && sibling->equalsTree(target)) ) { v.push_back(sibling); } // regardless of match or not, check any children for matches if ( sibling->getFirstChild() ) { RefBaseAST(sibling->getFirstChild())->doWorkForFindAll(v, target, partialMatch); } } } /** Is t an exact structural and equals() match of this tree. The * 'this' reference is considered the start of a sibling list. */