Esempio n. 1
0
void BinaryCompArithOpAST::renameAttrRef(const SchemaMapString* schemaMap) {
	RefAST childAST = getFirstChild();
	assert (childAST);
	(RefBasicAST(childAST))->renameAttrRef(schemaMap);

	if (childAST->getNextSibling()) {
		(RefBasicAST(childAST->getNextSibling()))->renameAttrRef(schemaMap);
	}
}
Esempio n. 2
0
void BinaryCompArithOpAST::getReferredAttributes(set<string>& referredAttrs) {
	RefAST childAST = getFirstChild();
	assert (childAST);
	(RefBasicAST(childAST))->getReferredAttributes(referredAttrs);

	if (childAST->getNextSibling()) {
		(RefBasicAST(childAST->getNextSibling()))->
			getReferredAttributes(referredAttrs);
	}
}
Esempio n. 3
0
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.
 */