示例#1
0
void Visitor_DoMakeWalker::Visit_Expr_Rel_Union(const ZRef<RelationalAlgebra::Expr_Rel_Union>& iExpr)
	{
	if (ZRef<Walker> op0 = this->Do(iExpr->GetOp0()))
		{
		if (ZRef<Walker> op1 = this->Do(iExpr->GetOp1()))
			this->pSetResult(new Walker_Union(op0, op1));
		else
			this->pSetResult(op0);
		}
	else if (ZRef<Walker> op1 = this->Do(iExpr->GetOp1()))
		this->pSetResult(op1);
	}
示例#2
0
void Visitor_DoMakeWalker::Visit_Expr_Rel_Product(const ZRef<RelationalAlgebra::Expr_Rel_Product>& iExpr)
	{
	if (ZRef<Walker> op0 = this->Do(iExpr->GetOp0()))
		{
		if (ZRef<Walker> op1 = this->Do(iExpr->GetOp1()))
			this->pSetResult(new Walker_Product(op0, op1));
		}
	}
示例#3
0
void Visitor_DoMakeWalker::Visit_Expr_Rel_Embed(const ZRef<RelationalAlgebra::Expr_Rel_Embed>& iExpr)
	{
	if (ZRef<Walker> op0 = this->Do(iExpr->GetOp0()))
		{
		if (ZRef<Walker> op1 = this->Do(iExpr->GetOp1()))
			this->pSetResult(new Walker_Embed(op0, iExpr->GetColName(), op1));
		}
	}
示例#4
0
void ZVisitor_Expr_Bool_ToStrim::Visit_Expr_Bool_Or(const ZRef<ZExpr_Bool_Or>& iRep)
	{
	this->pStrimW() << "(";
	this->pToStrim(iRep->GetOp0());
	this->pStrimW() << " | ";
	this->pToStrim(iRep->GetOp1());
	this->pStrimW() << ")";
	}
void Visitor_Expr_Bool_Do_Eval::Visit_Expr_Bool_Or(const ZRef<Expr_Bool_Or>& iRep)
	{ this->pSetResult(this->Do(iRep->GetOp0()) || this->Do(iRep->GetOp1())); }
示例#6
0
void ZVisitor_Expr_Bool_Do_Eval::Visit_Expr_Bool_And(const ZRef<ZExpr_Bool_And>& iRep)
	{ this->pSetResult(this->Do(iRep->GetOp0()) && this->Do(iRep->GetOp1())); }