|
From: <ag...@us...> - 2011-01-02 19:20:21
|
Revision: 1843
http://zoolib.svn.sourceforge.net/zoolib/?rev=1843&view=rev
Author: agreen
Date: 2011-01-02 19:20:12 +0000 (Sun, 02 Jan 2011)
Log Message:
-----------
Radically simplify ZValPred-related stuff. We're going to want
to compile expressions when evaluating them, so there's no
benefit to leveraging virtual method dispatch to provide Matches
support.
Modified Paths:
--------------
trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Search.cpp
trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_DoMakeWalker.cpp
trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_DoMakeWalker.h
trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Walker_Select.cpp
trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_AsSQL.cpp
trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Compare_Rel.cpp
trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Util.cpp
trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Util_RelOperators.h
trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Util_Strim_Rel.cpp
trunk/zoolib/source/cxx/zoolib/ZCompare.cpp
trunk/zoolib/source/cxx/zoolib/ZUtil_Strim_ValPred_Any.cpp
trunk/zoolib/source/cxx/zoolib/ZUtil_Strim_ValPred_Any.h
trunk/zoolib/source/cxx/zoolib/ZValPred_Any.h
trunk/zoolib/source/cxx/zoolib/ZVisitor_Expr_Bool_ValPred_Any_DoToStrim.cpp
trunk/zoolib/source/cxx/zoolib/ZVisitor_Expr_Bool_ValPred_Any_DoToStrim.h
trunk/zoolib/source/cxx/zoolib/ZYad_JSON.cpp
Added Paths:
-----------
trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Expr_Rel_Restrict.cpp
trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Expr_Rel_Restrict.h
trunk/zoolib/source/cxx/zoolib/ZExpr_Bool_ValPred.cpp
trunk/zoolib/source/cxx/zoolib/ZExpr_Bool_ValPred.h
trunk/zoolib/source/cxx/zoolib/ZValPred.cpp
trunk/zoolib/source/cxx/zoolib/ZValPred.h
trunk/zoolib/source/cxx/zoolib/ZValPred_Any.cpp
trunk/zoolib/source/cxx/zoolib/ZValPred_GetNames.cpp
trunk/zoolib/source/cxx/zoolib/ZValPred_GetNames.h
trunk/zoolib/source/cxx/zoolib/ZValPred_Rename.cpp
trunk/zoolib/source/cxx/zoolib/ZValPred_Rename.h
trunk/zoolib/source/cxx/zoolib/ZVisitor_Expr_Bool_ValPred_Any_DoEval_Matches.cpp
trunk/zoolib/source/cxx/zoolib/ZVisitor_Expr_Bool_ValPred_Any_DoEval_Matches.h
trunk/zoolib/source/cxx/zoolib/ZVisitor_Expr_Bool_ValPred_DoCompare.cpp
trunk/zoolib/source/cxx/zoolib/ZVisitor_Expr_Bool_ValPred_DoCompare.h
trunk/zoolib/source/cxx/zoolib/ZVisitor_Expr_Bool_ValPred_DoGetNames.cpp
trunk/zoolib/source/cxx/zoolib/ZVisitor_Expr_Bool_ValPred_DoGetNames.h
Removed Paths:
-------------
trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Expr_Rel_Restrict_Any.h
trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Expr_Rel_Restrict_T.h
trunk/zoolib/source/cxx/zoolib/ZExpr_Bool_ValPred_Any.h
trunk/zoolib/source/cxx/zoolib/ZExpr_Bool_ValPred_T.h
trunk/zoolib/source/cxx/zoolib/ZValPred_Rename_T.h
trunk/zoolib/source/cxx/zoolib/ZValPred_T.h
trunk/zoolib/source/cxx/zoolib/ZVisitor_Expr_Bool_ValPred_Any_DoCompare.cpp
trunk/zoolib/source/cxx/zoolib/ZVisitor_Expr_Bool_ValPred_Any_DoCompare.h
trunk/zoolib/source/cxx/zoolib/ZVisitor_Expr_Bool_ValPred_DoEval_Matches_T.h
trunk/zoolib/source/cxx/zoolib/ZVisitor_Expr_Bool_ValPred_DoGetNames_T.h
Modified: trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Search.cpp
===================================================================
--- trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Search.cpp 2011-01-02 00:44:35 UTC (rev 1842)
+++ trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Search.cpp 2011-01-02 19:20:12 UTC (rev 1843)
@@ -76,6 +76,8 @@
s.Writef("annotations: %d", theAnnoCount);
}
+ s << "\n";
+
RelHead theRelHead;
for (map<string8,size_t>::iterator i = offsets.begin(); i != offsets.end(); ++i)
theRelHead.insert(i->first);
Modified: trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_DoMakeWalker.cpp
===================================================================
--- trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_DoMakeWalker.cpp 2011-01-02 00:44:35 UTC (rev 1842)
+++ trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_DoMakeWalker.cpp 2011-01-02 19:20:12 UTC (rev 1843)
@@ -18,7 +18,7 @@
OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
------------------------------------------------------------------------------------------------- */
-#include "zoolib/ZExpr_Bool_ValPred_Any.h"
+#include "zoolib/ZExpr_Bool_ValPred.h"
#include "zoolib/zqe/ZQE_Visitor_DoMakeWalker.h"
#include "zoolib/zqe/ZQE_Walker_Calc.h"
#include "zoolib/zqe/ZQE_Walker_Const.h"
@@ -87,12 +87,12 @@
this->pSetResult(new Walker_Rename(op0, iExpr->GetNew(), iExpr->GetOld()));
}
-void Visitor_DoMakeWalker::Visit_Expr_Rel_Restrict(const ZRef<ZRA::Expr_Rel_Restrict_Any>& iExpr)
+void Visitor_DoMakeWalker::Visit_Expr_Rel_Restrict(const ZRef<ZRA::Expr_Rel_Restrict>& iExpr)
{
if (ZRef<Walker> theWalker = this->Do(iExpr->GetOp0()))
{
this->pSetResult(
- new Walker_Select(theWalker, new ZExpr_Bool_ValPred_Any(iExpr->GetValPred())));
+ new Walker_Select(theWalker, new ZExpr_Bool_ValPred(iExpr->GetValPred())));
}
}
Modified: trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_DoMakeWalker.h
===================================================================
--- trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_DoMakeWalker.h 2011-01-02 00:44:35 UTC (rev 1842)
+++ trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_DoMakeWalker.h 2011-01-02 19:20:12 UTC (rev 1843)
@@ -36,7 +36,7 @@
#include "zoolib/zra/ZRA_Expr_Rel_Union.h"
#include "zoolib/zra/ZRA_Expr_Rel_Project.h"
#include "zoolib/zra/ZRA_Expr_Rel_Rename.h"
-#include "zoolib/zra/ZRA_Expr_Rel_Restrict_Any.h"
+#include "zoolib/zra/ZRA_Expr_Rel_Restrict.h"
#include "zoolib/zra/ZRA_Expr_Rel_Select.h"
namespace ZooLib {
@@ -44,7 +44,7 @@
// =================================================================================================
#pragma mark -
-#pragma mark * Visitor_DoMakeWalker_Any
+#pragma mark * Visitor_DoMakeWalker
class Visitor_DoMakeWalker
: public virtual ZVisitor_Do_T<ZRef<Walker> >
@@ -57,7 +57,7 @@
, public virtual ZRA::Visitor_Expr_Rel_Const
, public virtual ZRA::Visitor_Expr_Rel_Project
, public virtual ZRA::Visitor_Expr_Rel_Rename
-, public virtual ZRA::Visitor_Expr_Rel_Restrict_Any
+, public virtual ZRA::Visitor_Expr_Rel_Restrict
, public virtual ZRA::Visitor_Expr_Rel_Select
, public virtual ZRA::Visitor_Expr_Rel_Dee
{
@@ -72,7 +72,7 @@
virtual void Visit_Expr_Rel_Const(const ZRef<ZRA::Expr_Rel_Const>& iExpr);
virtual void Visit_Expr_Rel_Project(const ZRef<ZRA::Expr_Rel_Project>& iExpr);
virtual void Visit_Expr_Rel_Rename(const ZRef<ZRA::Expr_Rel_Rename>& iExpr);
- virtual void Visit_Expr_Rel_Restrict(const ZRef<ZRA::Expr_Rel_Restrict_Any>& iExpr);
+ virtual void Visit_Expr_Rel_Restrict(const ZRef<ZRA::Expr_Rel_Restrict>& iExpr);
virtual void Visit_Expr_Rel_Select(const ZRef<ZRA::Expr_Rel_Select>& iExpr);
virtual void Visit_Expr_Rel_Dee(const ZRef<ZRA::Expr_Rel_Dee>& iExpr);
Modified: trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Walker_Select.cpp
===================================================================
--- trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Walker_Select.cpp 2011-01-02 00:44:35 UTC (rev 1842)
+++ trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Walker_Select.cpp 2011-01-02 19:20:12 UTC (rev 1843)
@@ -18,8 +18,8 @@
OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
------------------------------------------------------------------------------------------------- */
+#include "zoolib/ZVisitor_Expr_Bool_ValPred_Any_DoEval_Matches.h"
#include "zoolib/zqe/ZQE_Walker_Select.h"
-#include "zoolib/ZExpr_Bool_ValPred_Any.h"
namespace ZooLib {
namespace ZQE {
@@ -27,6 +27,8 @@
using std::map;
using std::set;
+#if 0
+
class Context : public ZValContext
{
public:
@@ -34,7 +36,6 @@
const ZVal_Any* fResults;
};
-#if 0
maybe just bodge it for now -- pack all of iBindings and oResults into a ZMap_Any.
@@ -53,8 +54,6 @@
this->Visit_Expr_Op0(iExpr);
}
-#endif
-
static bool spMatches(const ZVal_Any* iBindings, const ZVal_Any* iResults, ZRef<ZExpr_Bool> iExpr)
{
Context theContext;
@@ -65,6 +64,8 @@
return false;
}
+#endif
+
// =================================================================================================
#pragma mark -
#pragma mark * Walker_Select
Modified: trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_AsSQL.cpp
===================================================================
--- trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_AsSQL.cpp 2011-01-02 00:44:35 UTC (rev 1842)
+++ trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_AsSQL.cpp 2011-01-02 19:20:12 UTC (rev 1843)
@@ -26,7 +26,8 @@
#include "zoolib/ZVisitor_Do_T.h"
#include "zoolib/ZVisitor_Expr_Bool_ValPred_Any_DoToStrim.h"
#include "zoolib/ZVisitor_Expr_Op_DoTransform_T.h"
-#include "zoolib/ZValPred_Rename_T.h"
+#include "zoolib/ZValPred_Any.h"
+#include "zoolib/ZValPred_Rename.h"
#include "zoolib/zra/ZRA_Util_Strim_RelHead.h"
@@ -35,7 +36,7 @@
#include "zoolib/zra/ZRA_Expr_Rel_Product.h"
#include "zoolib/zra/ZRA_Expr_Rel_Project.h"
#include "zoolib/zra/ZRA_Expr_Rel_Rename.h"
-#include "zoolib/zra/ZRA_Expr_Rel_Restrict_Any.h"
+#include "zoolib/zra/ZRA_Expr_Rel_Restrict.h"
#include "zoolib/zra/ZRA_Expr_Rel_Select.h"
#include "zoolib/zra/ZRA_Util_RelOperators.h"
@@ -54,7 +55,7 @@
namespace { // anonymous
-static ZValPred_Any spRenamed(const Rename& iRename, const ZValPred_Any& iValPred)
+static ZValPred spRenamed(const Rename& iRename, const ZValPred& iValPred)
{ return ZooLib::sRenamed(iRename, iValPred); }
} // anonymous namespace
@@ -67,12 +68,12 @@
class DoRename
: public virtual ZVisitor_Expr_Op_DoTransform_T<ZExpr_Bool>
-, public virtual ZVisitor_Expr_Bool_ValPred_Any
+, public virtual ZVisitor_Expr_Bool_ValPred
{
public:
DoRename(const Rename& iRename);
- virtual void Visit_Expr_Bool_ValPred(const ZRef<ZExpr_Bool_ValPred_Any>& iExpr);
+ virtual void Visit_Expr_Bool_ValPred(const ZRef<ZExpr_Bool_ValPred>& iExpr);
private:
const Rename& fRename;
};
@@ -81,8 +82,8 @@
: fRename(iRename)
{}
-void DoRename::Visit_Expr_Bool_ValPred(const ZRef<ZExpr_Bool_ValPred_Any>& iExpr)
- { this->pSetResult(new ZExpr_Bool_ValPred_Any(spRenamed(fRename, iExpr->GetValPred()))); }
+void DoRename::Visit_Expr_Bool_ValPred(const ZRef<ZExpr_Bool_ValPred>& iExpr)
+ { this->pSetResult(new ZExpr_Bool_ValPred(spRenamed(fRename, iExpr->GetValPred()))); }
static ZRef<ZExpr_Bool> spRenamed(const Rename& iRename, ZRef<ZExpr_Bool> iExpr_Bool)
{ return DoRename(iRename).Do(iExpr_Bool); }
@@ -114,7 +115,7 @@
, public virtual Visitor_Expr_Rel_Product
, public virtual Visitor_Expr_Rel_Project
, public virtual Visitor_Expr_Rel_Rename
-, public virtual Visitor_Expr_Rel_Restrict_Any
+, public virtual Visitor_Expr_Rel_Restrict
, public virtual Visitor_Expr_Rel_Select
, public virtual Visitor_Expr_Rel_Concrete
{
@@ -129,7 +130,7 @@
virtual void Visit_Expr_Rel_Project(const ZRef<Expr_Rel_Project>& iExpr);
virtual void Visit_Expr_Rel_Rename(const ZRef<Expr_Rel_Rename>& iExpr);
- virtual void Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict_Any>& iExpr);
+ virtual void Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict>& iExpr);
virtual void Visit_Expr_Rel_Select(const ZRef<Expr_Rel_Select>& iExpr);
virtual void Visit_Expr_Rel_Concrete(const ZRef<Expr_Rel_Concrete>& iExpr);
@@ -181,7 +182,7 @@
this->pSetResult(theThing);
}
-void MakeThing::Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict_Any>& iExpr)
+void MakeThing::Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict>& iExpr)
{
Thing theThing = this->Do(iExpr->GetOp0());
theThing.fCondition &= spRenamed(theThing.fRename, iExpr->GetValPred());
@@ -260,7 +261,7 @@
, public virtual ZVisitor_Expr_Bool_Not
, public virtual ZVisitor_Expr_Bool_And
, public virtual ZVisitor_Expr_Bool_Or
-, public virtual ZVisitor_Expr_Bool_ValPred_Any
+, public virtual ZVisitor_Expr_Bool_ValPred
{
public:
virtual void Visit_Expr_Bool_True(const ZRef<ZExpr_Bool_True>& iRep);
@@ -268,7 +269,7 @@
virtual void Visit_Expr_Bool_Not(const ZRef<ZExpr_Bool_Not>& iRep);
virtual void Visit_Expr_Bool_And(const ZRef<ZExpr_Bool_And>& iRep);
virtual void Visit_Expr_Bool_Or(const ZRef<ZExpr_Bool_Or>& iRep);
- virtual void Visit_Expr_Bool_ValPred(const ZRef<ZExpr_Bool_ValPred_Any>& iRep);
+ virtual void Visit_Expr_Bool_ValPred(const ZRef<ZExpr_Bool_ValPred>& iRep);
};
void ToStrim_SQL::Visit_Expr_Bool_True(const ZRef<ZExpr_Bool_True>& iRep)
@@ -302,11 +303,6 @@
pStrimW() << ")";
}
-typedef ZValComparator_Simple_T<ZVal_Any> ZValComparator_Simple;
-typedef ZValComparand_Name_T<ZVal_Any> ZValComparand_Name;
-typedef ZValComparand_Var_T<ZVal_Any> ZValComparand_Var;
-typedef ZValComparand_Const_T<ZVal_Any> ZValComparand_Const;
-
static void spToStrim_SimpleValue(const ZStrimW& s, const ZAny& iAny)
{
int64 asInt64;
@@ -360,7 +356,7 @@
s << iName;
}
-static void spToStrim(const ZRef<ZValPred_Any::Comparand>& iCR, const ZStrimW& s)
+static void spToStrim(const ZRef<ZValComparand>& iCR, const ZStrimW& s)
{
if (!iCR)
{
@@ -370,12 +366,8 @@
{
spWrite_PropName(cr->GetName(), s);
}
- else if (ZRef<ZValComparand_Var> cr = iCR.DynamicCast<ZValComparand_Var>())
+ else if (ZRef<ZValComparand_Const_Any> cr = iCR.DynamicCast<ZValComparand_Const_Any>())
{
- s << "$" << cr->GetVarName();
- }
- else if (ZRef<ZValComparand_Const> cr = iCR.DynamicCast<ZValComparand_Const>())
- {
spToStrim_SimpleValue(s, cr->GetVal());
}
else
@@ -384,7 +376,7 @@
}
}
-static void spToStrim(const ZRef<ZValPred_Any::Comparator>& iCR, const ZStrimW& s)
+static void spToStrim(const ZRef<ZValComparator>& iCR, const ZStrimW& s)
{
if (!iCR)
{
@@ -409,6 +401,11 @@
s << " = ";
break;
}
+ case ZValComparator_Simple::eNE:
+ {
+ s << " != ";
+ break;
+ }
case ZValComparator_Simple::eGE:
{
s << " >= ";
@@ -427,14 +424,14 @@
}
}
-void spToStrim(const ZValPred_Any& iValPred, const ZStrimW& s)
+void spToStrim(const ZValPred& iValPred, const ZStrimW& s)
{
spToStrim(iValPred.GetLHS(), s);
spToStrim(iValPred.GetComparator(), s);
spToStrim(iValPred.GetRHS(), s);
}
-void ToStrim_SQL::Visit_Expr_Bool_ValPred(const ZRef<ZExpr_Bool_ValPred_Any>& iRep)
+void ToStrim_SQL::Visit_Expr_Bool_ValPred(const ZRef<ZExpr_Bool_ValPred>& iRep)
{ spToStrim(iRep->GetValPred(), pStrimW()); }
} // anonymous namespace
Modified: trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Compare_Rel.cpp
===================================================================
--- trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Compare_Rel.cpp 2011-01-02 00:44:35 UTC (rev 1842)
+++ trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Compare_Rel.cpp 2011-01-02 19:20:12 UTC (rev 1843)
@@ -19,7 +19,7 @@
------------------------------------------------------------------------------------------------- */
#include "zoolib/ZVisitor_Do_T.h"
-#include "zoolib/ZVisitor_Expr_Bool_ValPred_Any_DoCompare.h"
+#include "zoolib/ZVisitor_Expr_Bool_ValPred_DoCompare.h"
#include "zoolib/zra/ZRA_Compare_Rel.h"
#include "zoolib/zra/ZRA_Expr_Rel_Calc.h"
#include "zoolib/zra/ZRA_Expr_Rel_Concrete.h"
@@ -31,7 +31,7 @@
#include "zoolib/zra/ZRA_Expr_Rel_Union.h"
#include "zoolib/zra/ZRA_Expr_Rel_Project.h"
#include "zoolib/zra/ZRA_Expr_Rel_Rename.h"
-#include "zoolib/zra/ZRA_Expr_Rel_Restrict_Any.h"
+#include "zoolib/zra/ZRA_Expr_Rel_Restrict.h"
#include "zoolib/zra/ZRA_Expr_Rel_Select.h"
namespace ZooLib {
@@ -55,7 +55,7 @@
, public virtual Visitor_Expr_Rel_Product
, public virtual Visitor_Expr_Rel_Project
, public virtual Visitor_Expr_Rel_Rename
-, public virtual Visitor_Expr_Rel_Restrict_Any
+, public virtual Visitor_Expr_Rel_Restrict
, public virtual Visitor_Expr_Rel_Select
, public virtual Visitor_Expr_Rel_Union
{
@@ -69,7 +69,7 @@
virtual void Visit_Expr_Rel_Product(const ZRef<Expr_Rel_Product>&) { pSetResult(-1); }
virtual void Visit_Expr_Rel_Project(const ZRef<Expr_Rel_Project>&) { pSetResult(-1); }
virtual void Visit_Expr_Rel_Rename(const ZRef<Expr_Rel_Rename>&) { pSetResult(-1); }
- virtual void Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict_Any>&) { pSetResult(-1); }
+ virtual void Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict>&) { pSetResult(-1); }
virtual void Visit_Expr_Rel_Select(const ZRef<Expr_Rel_Select>&) { pSetResult(-1); }
virtual void Visit_Expr_Rel_Union(const ZRef<Expr_Rel_Union>&) { pSetResult(-1); }
@@ -117,7 +117,7 @@
{ virtual void Visit_Expr_Rel_Project(const ZRef<Expr_Rel_Project>&) { pSetResult(1); } };
struct Comparer_GT_Restrict : public Comparer_GT_Rename
- { virtual void Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict_Any>&) { pSetResult(1); } };
+ { virtual void Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict>&) { pSetResult(1); } };
struct Comparer_GT_Select : public Comparer_GT_Restrict
{ virtual void Visit_Expr_Rel_Select(const ZRef<Expr_Rel_Select>&) { pSetResult(1); } };
@@ -240,9 +240,9 @@
struct Comparer_Restrict : public Comparer_GT_Rename
{
- ZRef<Expr_Rel_Restrict_Any> fExpr;
- Comparer_Restrict(ZRef<Expr_Rel_Restrict_Any> iExpr) : fExpr(iExpr) {}
- virtual void Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict_Any>& iExpr)
+ ZRef<Expr_Rel_Restrict> fExpr;
+ Comparer_Restrict(ZRef<Expr_Rel_Restrict> iExpr) : fExpr(iExpr) {}
+ virtual void Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict>& iExpr)
{
if (int compare = sCompare_T(fExpr->GetValPred(), iExpr->GetValPred()))
pSetResult(compare);
@@ -257,7 +257,7 @@
Comparer_Select(ZRef<Expr_Rel_Select> iExpr) : fExpr(iExpr) {}
virtual void Visit_Expr_Rel_Select(const ZRef<Expr_Rel_Select>& iExpr)
{
- if (int compare = Visitor_Expr_Bool_ValPred_Any_DoCompare::Comparer_Bootstrap()
+ if (int compare = Visitor_Expr_Bool_ValPred_DoCompare::Comparer_Bootstrap()
.Compare(fExpr->GetExpr_Bool(), iExpr->GetExpr_Bool()))
{
pSetResult(compare);
@@ -296,7 +296,7 @@
, public virtual Visitor_Expr_Rel_Product
, public virtual Visitor_Expr_Rel_Project
, public virtual Visitor_Expr_Rel_Rename
-, public virtual Visitor_Expr_Rel_Restrict_Any
+, public virtual Visitor_Expr_Rel_Restrict
, public virtual Visitor_Expr_Rel_Select
, public virtual Visitor_Expr_Rel_Union
{
@@ -330,7 +330,7 @@
virtual void Visit_Expr_Rel_Rename(const ZRef<Expr_Rel_Rename>& iExpr)
{ pSetResult(Comparer_Rename(iExpr).Do(fExpr)); }
- virtual void Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict_Any>& iExpr)
+ virtual void Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict>& iExpr)
{ pSetResult(Comparer_Restrict(iExpr).Do(fExpr)); }
virtual void Visit_Expr_Rel_Select(const ZRef<Expr_Rel_Select>& iExpr)
Added: trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Expr_Rel_Restrict.cpp
===================================================================
--- trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Expr_Rel_Restrict.cpp (rev 0)
+++ trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Expr_Rel_Restrict.cpp 2011-01-02 19:20:12 UTC (rev 1843)
@@ -0,0 +1,103 @@
+/* -------------------------------------------------------------------------------------------------
+Copyright (c) 2011 Andrew Green
+http://www.zoolib.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+and associated documentation files (the "Software"), to deal in the Software without restriction,
+including without limitation the rights to use, copy, modify, merge, publish, distribute,
+sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
+is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES
+OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+------------------------------------------------------------------------------------------------- */
+
+#include "zoolib/zra/ZRA_Expr_Rel_Restrict.h"
+
+namespace ZooLib {
+namespace ZRA {
+
+// =================================================================================================
+#pragma mark -
+#pragma mark * Expr_Rel_Restrict
+
+Expr_Rel_Restrict::Expr_Rel_Restrict(
+ const ZRef<Expr_Rel>& iOp0, const ZValPred& iValPred)
+: inherited(iOp0)
+, fValPred(iValPred)
+ {}
+
+Expr_Rel_Restrict::~Expr_Rel_Restrict()
+ {}
+
+void Expr_Rel_Restrict::Accept(ZVisitor& iVisitor)
+ {
+ if (Visitor_Expr_Rel_Restrict* theVisitor =
+ dynamic_cast<Visitor_Expr_Rel_Restrict*>(&iVisitor))
+ {
+ this->Accept_Expr_Rel_Restrict(*theVisitor);
+ }
+ else
+ {
+ inherited::Accept(iVisitor);
+ }
+ }
+
+void Expr_Rel_Restrict::Accept_Expr_Op1(ZVisitor_Expr_Op1_T<Expr_Rel>& iVisitor)
+ {
+ if (Visitor_Expr_Rel_Restrict* theVisitor =
+ dynamic_cast<Visitor_Expr_Rel_Restrict*>(&iVisitor))
+ {
+ this->Accept_Expr_Rel_Restrict(*theVisitor);
+ }
+ else
+ {
+ inherited::Accept_Expr_Op1(iVisitor);
+ }
+ }
+
+ZRef<Expr_Rel> Expr_Rel_Restrict::Self()
+ { return this; }
+
+ZRef<Expr_Rel> Expr_Rel_Restrict::Clone(const ZRef<Expr_Rel>& iOp0)
+ { return new Expr_Rel_Restrict(iOp0, fValPred); }
+
+void Expr_Rel_Restrict::Accept_Expr_Rel_Restrict(Visitor_Expr_Rel_Restrict& iVisitor)
+ { iVisitor.Visit_Expr_Rel_Restrict(this); }
+
+const ZValPred& Expr_Rel_Restrict::GetValPred() const
+ { return fValPred; }
+
+// =================================================================================================
+#pragma mark -
+#pragma mark * Visitor_Expr_Rel_Restrict
+
+void Visitor_Expr_Rel_Restrict::Visit_Expr_Rel_Restrict(
+ const ZRef<Expr_Rel_Restrict >& iExpr)
+ { this->Visit_Expr_Op1(iExpr); }
+
+// =================================================================================================
+#pragma mark -
+#pragma mark * Operators
+
+ZRef<Expr_Rel_Restrict> sRestrict(
+ const ZValPred& iValPred, const ZRef<Expr_Rel>& iExpr_Rel)
+ { return new Expr_Rel_Restrict(iExpr_Rel, iValPred); }
+
+ZRef<Expr_Rel> operator&(const ZRef<Expr_Rel>& iExpr_Rel, const ZValPred& iValPred)
+ { return sRestrict(iValPred, iExpr_Rel); }
+
+ZRef<Expr_Rel> operator&(const ZValPred& iValPred, const ZRef<Expr_Rel>& iExpr_Rel)
+ { return sRestrict(iValPred, iExpr_Rel); }
+
+ZRef<Expr_Rel>& operator&=(ZRef<Expr_Rel>& ioExpr_Rel, const ZValPred& iValPred)
+ { return ioExpr_Rel = ioExpr_Rel & iValPred; }
+
+} // namespace ZRA
+} // namespace ZooLib
Added: trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Expr_Rel_Restrict.h
===================================================================
--- trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Expr_Rel_Restrict.h (rev 0)
+++ trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Expr_Rel_Restrict.h 2011-01-02 19:20:12 UTC (rev 1843)
@@ -0,0 +1,94 @@
+/* -------------------------------------------------------------------------------------------------
+Copyright (c) 2011 Andrew Green
+http://www.zoolib.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+and associated documentation files (the "Software"), to deal in the Software without restriction,
+including without limitation the rights to use, copy, modify, merge, publish, distribute,
+sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
+is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES
+OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+------------------------------------------------------------------------------------------------- */
+
+#ifndef __ZRA_Expr_Rel_Restrict__
+#define __ZRA_Expr_Rel_Restrict__ 1
+#include "zconfig.h"
+
+#include "zoolib/ZExpr_Op_T.h"
+#include "zoolib/ZValPred.h"
+#include "zoolib/zra/ZRA_Expr_Rel.h"
+
+namespace ZooLib {
+namespace ZRA {
+
+class Visitor_Expr_Rel_Restrict;
+
+// =================================================================================================
+#pragma mark -
+#pragma mark * Expr_Rel_Restrict
+
+class Expr_Rel_Restrict
+: public virtual Expr_Rel
+, public virtual ZExpr_Op1_T<Expr_Rel>
+ {
+ typedef ZExpr_Op1_T<Expr_Rel> inherited;
+public:
+ Expr_Rel_Restrict(const ZRef<Expr_Rel>& iOp0, const ZValPred& iValPred);
+ virtual ~Expr_Rel_Restrict();
+
+// From ZVisitee
+ virtual void Accept(ZVisitor& iVisitor);
+
+// From ZExpr_Op1_T<Expr_Rel>
+ virtual void Accept_Expr_Op1(ZVisitor_Expr_Op1_T<Expr_Rel>& iVisitor);
+
+ virtual ZRef<Expr_Rel> Self();
+ virtual ZRef<Expr_Rel> Clone(const ZRef<Expr_Rel>& iOp0);
+
+// Our protocol
+ virtual void Accept_Expr_Rel_Restrict(Visitor_Expr_Rel_Restrict& iVisitor);
+
+ const ZValPred& GetValPred() const;
+
+private:
+ const ZValPred fValPred;
+ };
+
+// =================================================================================================
+#pragma mark -
+#pragma mark * Visitor_Expr_Rel_Restrict
+
+class Visitor_Expr_Rel_Restrict
+: public virtual ZVisitor_Expr_Op1_T<Expr_Rel>
+ {
+ typedef ZVisitor_Expr_Op1_T<Expr_Rel> inherited;
+public:
+ virtual void Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict>& iExpr);
+ };
+
+// =================================================================================================
+#pragma mark -
+#pragma mark * Operators
+
+// The order of parameters here differs from that in sSelect precisely to keep them distinct.
+ZRef<Expr_Rel_Restrict> sRestrict(
+ const ZValPred& iValPred, const ZRef<Expr_Rel>& iExpr_Rel);
+
+ZRef<Expr_Rel> operator&(const ZRef<Expr_Rel>& iExpr_Rel, const ZValPred& iValPred);
+
+ZRef<Expr_Rel> operator&(const ZValPred& iValPred, const ZRef<Expr_Rel>& iExpr_Rel);
+
+ZRef<Expr_Rel>& operator&=(ZRef<Expr_Rel>& ioExpr_Rel, const ZValPred& iValPred);
+
+} // namespace ZRA
+} // namespace ZooLib
+
+#endif // __ZRA_Expr_Rel_Restrict__
Deleted: trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Expr_Rel_Restrict_Any.h
===================================================================
--- trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Expr_Rel_Restrict_Any.h 2011-01-02 00:44:35 UTC (rev 1842)
+++ trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Expr_Rel_Restrict_Any.h 2011-01-02 19:20:12 UTC (rev 1843)
@@ -1,42 +0,0 @@
-/* -------------------------------------------------------------------------------------------------
-Copyright (c) 2010 Andrew Green
-http://www.zoolib.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-and associated documentation files (the "Software"), to deal in the Software without restriction,
-including without limitation the rights to use, copy, modify, merge, publish, distribute,
-sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
-is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES
-OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-------------------------------------------------------------------------------------------------- */
-
-#ifndef __ZRA_Expr_Rel_Restrict_Any__
-#define __ZRA_Expr_Rel_Restrict_Any__ 1
-#include "zconfig.h"
-
-#include "zoolib/ZValPred_Any.h"
-#include "zoolib/zra/ZRA_Expr_Rel_Restrict_T.h"
-
-namespace ZooLib {
-namespace ZRA {
-
-// =================================================================================================
-#pragma mark -
-#pragma mark * Expr_Rel_Restrict
-
-typedef Expr_Rel_Restrict_T<ZVal_Any> Expr_Rel_Restrict_Any;
-
-typedef Visitor_Expr_Rel_Restrict_T<ZVal_Any> Visitor_Expr_Rel_Restrict_Any;
-
-} // namespace ZRA
-} // namespace ZooLib
-
-#endif // __ZRA_Expr_Rel_Restrict_Any__
Deleted: trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Expr_Rel_Restrict_T.h
===================================================================
--- trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Expr_Rel_Restrict_T.h 2011-01-02 00:44:35 UTC (rev 1842)
+++ trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Expr_Rel_Restrict_T.h 2011-01-02 19:20:12 UTC (rev 1843)
@@ -1,165 +0,0 @@
-/* -------------------------------------------------------------------------------------------------
-Copyright (c) 2010 Andrew Green
-http://www.zoolib.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-and associated documentation files (the "Software"), to deal in the Software without restriction,
-including without limitation the rights to use, copy, modify, merge, publish, distribute,
-sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
-is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES
-OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-------------------------------------------------------------------------------------------------- */
-
-#ifndef __ZRA_Expr_Rel_Restrict_T__
-#define __ZRA_Expr_Rel_Restrict_T__ 1
-#include "zconfig.h"
-
-#include "zoolib/ZExpr_Op_T.h"
-#include "zoolib/ZValPred_T.h"
-#include "zoolib/zra/ZRA_Expr_Rel.h"
-
-namespace ZooLib {
-namespace ZRA {
-
-template <class Val>
-class Visitor_Expr_Rel_Restrict_T;
-
-// =================================================================================================
-#pragma mark -
-#pragma mark * Expr_Rel_Restrict_T
-
-template <class Val>
-class Expr_Rel_Restrict_T
-: public virtual Expr_Rel
-, public virtual ZExpr_Op1_T<Expr_Rel>
- {
- typedef ZExpr_Op1_T<Expr_Rel> inherited;
-public:
- Expr_Rel_Restrict_T(const ZRef<Expr_Rel>& iOp0, const ZValPred_T<Val>& iValPred);
- virtual ~Expr_Rel_Restrict_T();
-
-// From ZVisitee
- virtual void Accept(ZVisitor& iVisitor);
-
-// From ZExpr_Op1_T<Expr_Rel>
- virtual void Accept_Expr_Op1(ZVisitor_Expr_Op1_T<Expr_Rel>& iVisitor);
-
- virtual ZRef<Expr_Rel> Self();
- virtual ZRef<Expr_Rel> Clone(const ZRef<Expr_Rel>& iOp0);
-
-// Our protocol
- virtual void Accept_Expr_Rel_Restrict(Visitor_Expr_Rel_Restrict_T<Val>& iVisitor);
-
- ZValPred_T<Val> GetValPred();
-
-private:
- const ZValPred_T<Val> fValPred;
- };
-
-template <class Val>
-Expr_Rel_Restrict_T<Val>::Expr_Rel_Restrict_T(
- const ZRef<Expr_Rel>& iOp0, const ZValPred_T<Val>& iValPred)
-: inherited(iOp0)
-, fValPred(iValPred)
- {}
-
-template <class Val>
-Expr_Rel_Restrict_T<Val>::~Expr_Rel_Restrict_T()
- {}
-
-template <class Val>
-void Expr_Rel_Restrict_T<Val>::Accept(ZVisitor& iVisitor)
- {
- if (Visitor_Expr_Rel_Restrict_T<Val>* theVisitor =
- dynamic_cast<Visitor_Expr_Rel_Restrict_T<Val>*>(&iVisitor))
- {
- this->Accept_Expr_Rel_Restrict(*theVisitor);
- }
- else
- {
- inherited::Accept(iVisitor);
- }
- }
-
-template <class Val>
-void Expr_Rel_Restrict_T<Val>::Accept_Expr_Op1(ZVisitor_Expr_Op1_T<Expr_Rel>& iVisitor)
- {
- if (Visitor_Expr_Rel_Restrict_T<Val>* theVisitor =
- dynamic_cast<Visitor_Expr_Rel_Restrict_T<Val>*>(&iVisitor))
- {
- this->Accept_Expr_Rel_Restrict(*theVisitor);
- }
- else
- {
- inherited::Accept_Expr_Op1(iVisitor);
- }
- }
-
-template <class Val>
-ZRef<Expr_Rel> Expr_Rel_Restrict_T<Val>::Self()
- { return this; }
-
-template <class Val>
-ZRef<Expr_Rel> Expr_Rel_Restrict_T<Val>::Clone(const ZRef<Expr_Rel>& iOp0)
- { return new Expr_Rel_Restrict_T<Val>(iOp0, fValPred); }
-
-template <class Val>
-void Expr_Rel_Restrict_T<Val>::Accept_Expr_Rel_Restrict(Visitor_Expr_Rel_Restrict_T<Val>& iVisitor)
- { iVisitor.Visit_Expr_Rel_Restrict(this); }
-
-template <class Val>
-ZValPred_T<Val> Expr_Rel_Restrict_T<Val>::GetValPred()
- { return fValPred; }
-
-// =================================================================================================
-#pragma mark -
-#pragma mark * Visitor_Expr_Rel_Restrict_T
-
-template <class Val>
-class Visitor_Expr_Rel_Restrict_T
-: public virtual ZVisitor_Expr_Op1_T<Expr_Rel>
- {
- typedef ZVisitor_Expr_Op1_T<Expr_Rel> inherited;
-public:
- virtual void Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict_T<Val> >& iExpr);
- };
-
-template <class Val>
-void Visitor_Expr_Rel_Restrict_T<Val>::Visit_Expr_Rel_Restrict(
- const ZRef<Expr_Rel_Restrict_T<Val> >& iExpr)
- { this->Visit_Expr_Op1(iExpr); }
-
-// =================================================================================================
-#pragma mark -
-#pragma mark * Operators
-
-// The order of parameters here differs from that in sSelect precisely to keep them distinct.
-template <class Val>
-ZRef<Expr_Rel_Restrict_T<Val> > sRestrict_T(
- const ZValPred_T<Val>& iValPred, const ZRef<Expr_Rel>& iExpr_Rel)
- { return new Expr_Rel_Restrict_T<Val>(iExpr_Rel, iValPred); }
-
-template <class Val>
-ZRef<Expr_Rel> operator&(const ZRef<Expr_Rel>& iExpr_Rel, const ZValPred_T<Val>& iValPred)
- { return sRestrict_T<Val>(iValPred, iExpr_Rel); }
-
-template <class Val>
-ZRef<Expr_Rel> operator&(const ZValPred_T<Val>& iValPred, const ZRef<Expr_Rel>& iExpr_Rel)
- { return sRestrict_T<Val>(iValPred, iExpr_Rel); }
-
-template <class Val>
-ZRef<Expr_Rel>& operator&=(ZRef<Expr_Rel>& ioExpr_Rel, const ZValPred_T<Val>& iValPred)
- { return ioExpr_Rel = ioExpr_Rel & iValPred; }
-
-} // namespace ZRA
-} // namespace ZooLib
-
-#endif // __ZRA_Expr_Rel_Restrict_T__
Modified: trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Util.cpp
===================================================================
--- trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Util.cpp 2011-01-02 00:44:35 UTC (rev 1842)
+++ trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Util.cpp 2011-01-02 19:20:12 UTC (rev 1843)
@@ -18,9 +18,10 @@
OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
------------------------------------------------------------------------------------------------- */
-#include "zoolib/ZExpr_Bool_ValPred_Any.h"
+#include "zoolib/ZValPred_GetNames.h"
+#include "zoolib/ZVisitor_Expr_Bool_ValPred_DoGetNames.h"
#include "zoolib/zra/ZRA_Expr_Rel_Project.h"
-#include "zoolib/zra/ZRA_Expr_Rel_Restrict_Any.h"
+#include "zoolib/zra/ZRA_Expr_Rel_Restrict.h"
#include "zoolib/zra/ZRA_Expr_Rel_Select.h"
#include "zoolib/zra/ZRA_Util.h"
@@ -55,14 +56,14 @@
class Doer
: public virtual ZVisitor_Do_T<RelHead>
, public virtual Visitor_Expr_Rel_Project
-, public virtual Visitor_Expr_Rel_Restrict_Any
+, public virtual Visitor_Expr_Rel_Restrict
, public virtual Visitor_Expr_Rel_Select
{
public:
Doer(vector<Problem>& oProblems);
virtual void Visit_Expr_Rel_Project(const ZRef<Expr_Rel_Project>& iExpr);
- virtual void Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict_Any>& iExpr);
+ virtual void Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict>& iExpr);
virtual void Visit_Expr_Rel_Select(const ZRef<Expr_Rel_Select>& iExpr);
private:
@@ -87,10 +88,10 @@
this->pSetResult(providedRelHead & requiredRelHead);
}
-void Doer::Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict_Any>& iExpr)
+void Doer::Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict>& iExpr)
{
const RelHead providedRelHead = this->Do(iExpr->GetOp0());
- const RelHead requiredRelHead = iExpr->GetValPred().GetNames();
+ const RelHead requiredRelHead = sGetNames(iExpr->GetValPred());
if (!providedRelHead.Contains(requiredRelHead))
{
Modified: trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Util_RelOperators.h
===================================================================
--- trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Util_RelOperators.h 2011-01-02 00:44:35 UTC (rev 1842)
+++ trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Util_RelOperators.h 2011-01-02 19:20:12 UTC (rev 1843)
@@ -22,7 +22,7 @@
#define __ZRA_Util_RelOperators__ 1
#include "zconfig.h"
-#include "zoolib/ZExpr_Bool_ValPred_Any.h" // For ValPred/Bool operators
+#include "zoolib/ZExpr_Bool_ValPred.h" // For ValPred/Bool operators
#include "zoolib/zra/ZRA_Expr_Rel_Calc.h"
#include "zoolib/zra/ZRA_Expr_Rel_Concrete.h"
#include "zoolib/zra/ZRA_Expr_Rel_Const.h"
@@ -32,7 +32,7 @@
#include "zoolib/zra/ZRA_Expr_Rel_Product.h"
#include "zoolib/zra/ZRA_Expr_Rel_Union.h"
#include "zoolib/zra/ZRA_Expr_Rel_Project.h"
-#include "zoolib/zra/ZRA_Expr_Rel_Restrict_Any.h" // For restrict templated operators
+#include "zoolib/zra/ZRA_Expr_Rel_Restrict.h"
#include "zoolib/zra/ZRA_Expr_Rel_Rename.h"
#include "zoolib/zra/ZRA_Expr_Rel_Select.h"
Modified: trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Util_Strim_Rel.cpp
===================================================================
--- trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Util_Strim_Rel.cpp 2011-01-02 00:44:35 UTC (rev 1842)
+++ trunk/zoolib/source/cxx/more/zoolib/zra/ZRA_Util_Strim_Rel.cpp 2011-01-02 19:20:12 UTC (rev 1843)
@@ -33,7 +33,7 @@
#include "zoolib/zra/ZRA_Expr_Rel_Union.h"
#include "zoolib/zra/ZRA_Expr_Rel_Project.h"
#include "zoolib/zra/ZRA_Expr_Rel_Rename.h"
-#include "zoolib/zra/ZRA_Expr_Rel_Restrict_Any.h"
+#include "zoolib/zra/ZRA_Expr_Rel_Restrict.h"
#include "zoolib/zra/ZRA_Expr_Rel_Select.h"
#include "zoolib/zra/ZRA_GetRelHead.h"
#include "zoolib/zra/ZRA_Util_Strim_Rel.h"
@@ -86,7 +86,7 @@
, public virtual Visitor_Expr_Rel_Const
, public virtual Visitor_Expr_Rel_Project
, public virtual Visitor_Expr_Rel_Rename
-, public virtual Visitor_Expr_Rel_Restrict_Any
+, public virtual Visitor_Expr_Rel_Restrict
, public virtual Visitor_Expr_Rel_Select
, public virtual Visitor_Expr_Rel_Concrete
, public virtual Visitor_Expr_Rel_Dee
@@ -102,7 +102,7 @@
virtual void Visit_Expr_Rel_Const(const ZRef<Expr_Rel_Const>& iExpr);
virtual void Visit_Expr_Rel_Project(const ZRef<Expr_Rel_Project>& iExpr);
virtual void Visit_Expr_Rel_Rename(const ZRef<Expr_Rel_Rename>& iExpr);
- virtual void Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict_Any>& iExpr);
+ virtual void Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict>& iExpr);
virtual void Visit_Expr_Rel_Select(const ZRef<Expr_Rel_Select>& iExpr);
virtual void Visit_Expr_Rel_Concrete(const ZRef<Expr_Rel_Concrete>& iExpr);
@@ -248,7 +248,7 @@
w << ")";
}
-void Visitor_DoToStrim::Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict_Any>& iExpr)
+void Visitor_DoToStrim::Visit_Expr_Rel_Restrict(const ZRef<Expr_Rel_Restrict>& iExpr)
{
const ZStrimW& w = pStrimW();
w << "Restrict";
Modified: trunk/zoolib/source/cxx/zoolib/ZCompare.cpp
===================================================================
--- trunk/zoolib/source/cxx/zoolib/ZCompare.cpp 2011-01-02 00:44:35 UTC (rev 1842)
+++ trunk/zoolib/source/cxx/zoolib/ZCompare.cpp 2011-01-02 19:20:12 UTC (rev 1843)
@@ -76,7 +76,7 @@
map<const char*, ZCompare*, CompareCharStars>::iterator i = spMap->find(iTypeName);
if (i != spMap->end())
- return (*i).second->Compare(iL, iR);
+ return i->second->Compare(iL, iR);
ZDebugStopf(0, ("ZCompare::sCompare called on unsupported type '%s'", iTypeName));
return iL < iR ? -1 : iL > iR ? 1 : 0;
Added: trunk/zoolib/source/cxx/zoolib/ZExpr_Bool_ValPred.cpp
===================================================================
--- trunk/zoolib/source/cxx/zoolib/ZExpr_Bool_ValPred.cpp (rev 0)
+++ trunk/zoolib/source/cxx/zoolib/ZExpr_Bool_ValPred.cpp 2011-01-02 19:20:12 UTC (rev 1843)
@@ -0,0 +1,145 @@
+/* -------------------------------------------------------------------------------------------------
+Copyright (c) 2011 Andrew Green
+http://www.zoolib.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+and associated documentation files (the "Software"), to deal in the Software without restriction,
+including without limitation the rights to use, copy, modify, merge, publish, distribute,
+sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
+is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES
+OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+------------------------------------------------------------------------------------------------- */
+
+#include "zoolib/ZExpr_Bool_ValPred.h"
+
+namespace ZooLib {
+
+// =================================================================================================
+#pragma mark -
+#pragma mark * ZExpr_Bool_ValPred
+
+ZExpr_Bool_ValPred::ZExpr_Bool_ValPred(const ZValPred& iValPred)
+: fValPred(iValPred)
+ {}
+
+ZExpr_Bool_ValPred::~ZExpr_Bool_ValPred()
+ {}
+
+void ZExpr_Bool_ValPred::Accept(ZVisitor& iVisitor)
+ {
+ if (ZVisitor_Expr_Bool_ValPred* theVisitor =
+ dynamic_cast<ZVisitor_Expr_Bool_ValPred*>(&iVisitor))
+ {
+ this->Accept_Expr_Bool_ValPred(*theVisitor);
+ }
+ else
+ {
+ inherited::Accept(iVisitor);
+ }
+ }
+
+void ZExpr_Bool_ValPred::Accept_Expr_Op0(ZVisitor_Expr_Op0_T<ZExpr_Bool>& iVisitor)
+ {
+ if (ZVisitor_Expr_Bool_ValPred* theVisitor =
+ dynamic_cast<ZVisitor_Expr_Bool_ValPred*>(&iVisitor))
+ {
+ this->Accept_Expr_Bool_ValPred(*theVisitor);
+ }
+ else
+ {
+ inherited::Accept_Expr_Op0(iVisitor);
+ }
+ }
+
+ZRef<ZExpr_Bool> ZExpr_Bool_ValPred::Self()
+ { return this; }
+
+ZRef<ZExpr_Bool> ZExpr_Bool_ValPred::Clone()
+ { return this; }
+
+void ZExpr_Bool_ValPred::Accept_Expr_Bool_ValPred(
+ ZVisitor_Expr_Bool_ValPred& iVisitor)
+ { iVisitor.Visit_Expr_Bool_ValPred(this); }
+
+const ZValPred& ZExpr_Bool_ValPred::GetValPred()
+ { return fValPred; }
+
+// =================================================================================================
+#pragma mark -
+#pragma mark * ZVisitor_Expr_Bool_ValPred
+
+void ZVisitor_Expr_Bool_ValPred::Visit_Expr_Bool_ValPred(
+ const ZRef<ZExpr_Bool_ValPred >& iExpr)
+ { this->Visit_Expr_Op0(iExpr); }
+
+// =================================================================================================
+#pragma mark -
+#pragma mark * Operators
+
+ZRef<ZExpr_Bool> sExpr_Bool(const ZValPred& iValPred)
+ { return new ZExpr_Bool_ValPred(iValPred); }
+
+ZRef<ZExpr_Bool_Not> operator~(const ZValPred& iValPred)
+ { return new ZExpr_Bool_Not(sExpr_Bool(iValPred)); }
+
+ZRef<ZExpr_Bool> operator&(bool iBool, const ZValPred& iValPred)
+ {
+ if (iBool)
+ return sExpr_Bool(iValPred);
+ return new ZExpr_Bool_False;
+ }
+
+ZRef<ZExpr_Bool> operator&(const ZValPred& iValPred, bool iBool)
+ {
+ if (iBool)
+ return sExpr_Bool(iValPred);
+ return new ZExpr_Bool_False;
+ }
+
+ZRef<ZExpr_Bool> operator|(bool iBool, const ZValPred& iValPred)
+ {
+ if (iBool)
+ return new ZExpr_Bool_True;
+ return sExpr_Bool(iValPred);
+ }
+
+ZRef<ZExpr_Bool> operator|(const ZValPred& iValPred, bool iBool)
+ {
+ if (iBool)
+ return new ZExpr_Bool_True;
+ return sExpr_Bool(iValPred);
+ }
+
+ZRef<ZExpr_Bool> operator&(const ZValPred& iLHS, const ZValPred& iRHS)
+ { return new ZExpr_Bool_And(sExpr_Bool(iLHS), sExpr_Bool(iRHS)); }
+
+ZRef<ZExpr_Bool> operator&(const ZValPred& iLHS, const ZRef<ZExpr_Bool>& iRHS)
+ { return new ZExpr_Bool_And(sExpr_Bool(iLHS), iRHS); }
+
+ZRef<ZExpr_Bool> operator&(const ZRef<ZExpr_Bool>& iLHS, const ZValPred& iRHS)
+ { return new ZExpr_Bool_And(iLHS, sExpr_Bool(iRHS)); }
+
+ZRef<ZExpr_Bool>& operator&=(ZRef<ZExpr_Bool>& ioLHS, const ZValPred& iRHS)
+ { return ioLHS = ioLHS & iRHS; }
+
+ZRef<ZExpr_Bool> operator|(const ZValPred& iLHS, const ZValPred& iRHS)
+ { return new ZExpr_Bool_Or(sExpr_Bool(iLHS), sExpr_Bool(iRHS)); }
+
+ZRef<ZExpr_Bool> operator|(const ZValPred& iLHS, const ZRef<ZExpr_Bool>& iRHS)
+ { return new ZExpr_Bool_Or(sExpr_Bool(iLHS), iRHS); }
+
+ZRef<ZExpr_Bool> operator|(const ZRef<ZExpr_Bool>& iLHS, const ZValPred& iRHS)
+ { return new ZExpr_Bool_Or(iLHS, sExpr_Bool(iRHS)); }
+
+ZRef<ZExpr_Bool>& operator|=(ZRef<ZExpr_Bool>& ioLHS, const ZValPred& iRHS)
+ { return ioLHS = ioLHS | iRHS; }
+
+} // namespace ZooLib
Added: trunk/zoolib/source/cxx/zoolib/ZExpr_Bool_ValPred.h
===================================================================
--- trunk/zoolib/source/cxx/zoolib/ZExpr_Bool_ValPred.h (rev 0)
+++ trunk/zoolib/source/cxx/zoolib/ZExpr_Bool_ValPred.h 2011-01-02 19:20:12 UTC (rev 1843)
@@ -0,0 +1,109 @@
+/* -------------------------------------------------------------------------------------------------
+Copyright (c) 2011 Andrew Green
+http://www.zoolib.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+and associated documentation files (the "Software"), to deal in the Software without restriction,
+including without limitation the rights to use, copy, modify, merge, publish, distribute,
+sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
+is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES
+OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+------------------------------------------------------------------------------------------------- */
+
+#ifndef __ZExpr_Bool_ValPred__
+#define __ZExpr_Bool_ValPred__ 1
+#include "zconfig.h"
+
+#include "zoolib/ZExpr_Bool.h"
+#include "zoolib/ZValPred.h"
+
+namespace ZooLib {
+
+class ZVisitor_Expr_Bool_ValPred;
+
+// =================================================================================================
+#pragma mark -
+#pragma mark * ZExpr_Bool_ValPred
+
+class ZExpr_Bool_ValPred
+: public virtual ZExpr_Bool
+, public virtual ZExpr_Op0_T<ZExpr_Bool>
+ {
+ typedef ZExpr_Op0_T<ZExpr_Bool> inherited;
+public:
+ ZExpr_Bool_ValPred(const ZValPred& iValPred);
+ virtual ~ZExpr_Bool_ValPred();
+
+// From ZVisitee
+ virtual void Accept(ZVisitor& iVisitor);
+
+// From ZExpr_Op0
+ virtual void Accept_Expr_Op0(ZVisitor_Expr_Op0_T<ZExpr_Bool>& iVisitor);
+
+ virtual ZRef<ZExpr_Bool> Self();
+ virtual ZRef<ZExpr_Bool> Clone();
+
+// Our protocol
+ virtual void Accept_Expr_Bool_ValPred(ZVisitor_Expr_Bool_ValPred& iVisitor);
+
+ const ZValPred& GetValPred();
+
+private:
+ const ZValPred fValPred;
+ };
+
+// =================================================================================================
+#pragma mark -
+#pragma mark * ZVisitor_Expr_Bool_ValPred
+
+class ZVisitor_Expr_Bool_ValPred
+: public virtual ZVisitor_Expr_Op0_T<ZExpr_Bool>
+ {
+ typedef ZVisitor_Expr_Op0_T<ZExpr_Bool> inherited;
+public:
+ virtual void Visit_Expr_Bool_ValPred(const ZRef<ZExpr_Bool_ValPred >& iExpr);
+ };
+
+// =================================================================================================
+#pragma mark -
+#pragma mark * Operators
+
+ZRef<ZExpr_Bool> sExpr_Bool(const ZValPred& iValPred);
+
+ZRef<ZExpr_Bool_Not> operator~(const ZValPred& iValPred);
+
+ZRef<ZExpr_Bool> operator&(bool iBool, const ZValPred& iValPred);
+
+ZRef<ZExpr_Bool> operator&(const ZValPred& iValPred, bool iBool);
+
+ZRef<ZExpr_Bool> operator|(bool iBool, const ZValPred& iValPred);
+
+ZRef<ZExpr_Bool> operator|(const ZValPred& iValPred, bool iBool);
+
+ZRef<ZExpr_Bool> operator&(const ZValPred& iLHS, const ZValPred& iRHS);
+
+ZRef<ZExpr_Bool> operator&(const ZValPred& iLHS, const ZRef<ZExpr_Bool>& iRHS);
+
+ZRef<ZExpr_Bool> operator&(const ZRef<ZExpr_Bool>& iLHS, const ZValPred& iRHS);
+
+ZRef<ZExpr_Bool>& operator&=(ZRef<ZExpr_Bool>& ioLHS, const ZValPred& iRHS);
+
+ZRef<ZExpr_Bool> operator|(const ZValPred& iLHS, const ZValPred& iRHS);
+
+ZRef<ZExpr_Bool> operator|(const ZValPred& iLHS, const ZRef<ZExpr_Bool>& iRHS);
+
+ZRef<ZExpr_Bool> operator|(const ZRef<ZExpr_Bool>& iLHS, const ZValPred& iRHS);
+
+ZRef<ZExpr_Bool>& operator|=(ZRef<ZExpr_Bool>& ioLHS, const ZValPred& iRHS);
+
+} // namespace ZooLib
+
+#endif // __ZExpr_Bool_ValPred__
Deleted: trunk/zoolib/source/cxx/zoolib/ZExpr_Bool_ValPred_Any.h
===================================================================
--- trunk/zoolib/source/cxx/zoolib/ZExpr_Bool_ValPred_Any.h 2011-01-02 00:44:35 UTC (rev 1842)
+++ trunk/zoolib/source/cxx/zoolib/ZExpr_Bool_ValPred_Any.h 2011-01-02 19:20:12 UTC (rev 1843)
@@ -1,49 +0,0 @@
-/* -------------------------------------------------------------------------------------------------
-Copyright (c) 2010 Andrew Green
-http://www.zoolib.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-and associated documentation files (the "Software"), to deal in the Software without restriction,
-including without limitation the rights to use, copy, modify, merge, publish, distribute,
-sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
-is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES
-OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-------------------------------------------------------------------------------------------------- */
-
-#ifndef __ZExpr_Bool_ValPred_Any__
-#define __ZExpr_Bool_ValPred_Any__ 1
-#include "zconfig.h"
-
-#include "zoolib/ZExpr_Bool_ValPred_T.h"
-#include "zoolib/ZValPred_Any.h"
-#include "zoolib/ZVisitor_Expr_Bool_ValPred_DoEval_Matches_T.h"
-#include "zoolib/ZVisitor_Expr_Bool_ValPred_DoGetNames_T.h"
-
-namespace ZooLib {
-
-// =================================================================================================
-#pragma mark -
-#pragma mark * ZExpr_Bool_ValPred
-
-typedef ZExpr_Bool_ValPred_T<ZVal_Any> ZExpr_Bool_ValPred_Any;
-
-typedef ZVisitor_Expr_Bool_ValPred_T<ZVal_Any> ZVisitor_Expr_Bool_ValPred_Any;
-
-
-inline std::set<std::string> sGetNames(const ZRef<ZExpr_Bool>& iExpr)
- { return ZVisitor_Expr_Bool_ValPred_DoGetNames_T<ZVal_Any>().Do(iExpr); }
-
-inline bool sMatches(const ZRef<ZExpr_Bool>& iExpr, const ZVal_Any& iVal)
- { return ZVisitor_Expr_Bool_ValPred_DoEval_Matches_T<ZVal_Any>(iVal).Do(iExpr); }
-
-} // namespace ZooLib
-
-#endif // __ZExpr_Bool_ValPred_Any__
Deleted: trunk/zoolib/source/cxx/zoolib/ZExpr_Bool_ValPred_T.h
===================================================================
--- trunk/zoolib/source/cxx/zoolib/ZExpr_Bool_ValPred_T.h 2011-01-02 00:44:35 UTC (rev 1842)
+++ trunk/zoolib/source/cxx/zoolib/ZExpr_Bool_ValPred_T.h 2011-01-02 19:20:12 UTC (rev 1843)
@@ -1,197 +0,0 @@
-/* -------------------------------------------------------------------------------------------------
-Copyright (c) 2010 Andrew Green
-http://www.zoolib.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-and associated documentation files (the "Software"), to deal in the Software without restriction,
-including without limitation the rights to use, copy, modify, merge, publish, distribute,
-sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
-is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES
-OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-------------------------------------------------------------------------------------------------- */
-
-#ifndef __ZExpr_Bool_ValPred_T__
-#define __ZExpr_Bool_ValPred_T__ 1
-#include "zconfig.h"
-
-#include "zoolib/ZExpr_Bool.h"
-#include "zoolib/ZValPred_T.h"
-
-namespace ZooLib {
-
-template <class Val> class ZVisitor_Expr_Bool_ValPred_T;
-
-// =================================================================================================
-#pragma mark -
-#pragma mark * ZExpr_Bool_ValPred_T
-
-template <class Val>
-class ZExpr_Bool_ValPred_T
-: public virtual ZExpr_Bool
-, public virtual ZExpr_Op0_T<ZExpr_Bool>
- {
- typedef ZExpr_Op0_T<ZExpr_Bool> inherited;
-public:
- ZExpr_Bool_ValPred_T(const ZValPred_T<Val>& iValPred);
- virtual ~ZExpr_Bool_ValPred_T();
-
-// From ZExpr_Op0
- virtual void Accept_Expr_Op0(ZVisitor_Expr_Op0_T<ZExpr_Bool>& iVisitor);
-
- virtual ZRef<ZExpr_Bool> Self();
- virtual ZRef<ZExpr_Bool> Clone();
-
-// Our protocol
- virtual void Accept_Expr_Bool_ValPred(ZVisitor_Expr_Bool_ValPred_T<Val>& iVisitor);
-
- const ZValPred_T<Val>& GetValPred();
-
-private:
- const ZValPred_T<Val> fValPred;
- };
-
-template <class Val>
-ZExpr_Bool_ValPred_T<Val>::ZExpr_Bool_ValPred_T(const ZValPred_T<Val>& iValPred)
-: fValPred(iValPred)
- {}
-
-template <class Val>
-ZExpr_Bool_ValPred_T<Val>::~ZExpr_Bool_ValPred_T()
- {}
-
-template <class Val>
-void ZExpr_Bool_ValPred_T<Val>::Accept_Expr_Op0(ZVisitor_Expr_Op0_T<ZExpr_Bool>& iVisitor)
- {
- if (ZVisitor_Expr_Bool_ValPred_T<Val>* theVisitor =
- dynamic_cast<ZVisitor_Expr_Bool_ValPred_T<Val>*>(&iVisitor))
- {
- this->Accept_Expr_Bool_ValPred(*theVisitor);
- }
- else
- {
- inherited::Accept_Expr_Op0(iVisitor);
- }
- }
-
-template <class Val>
-ZRef<ZExpr_Bool> ZExpr_Bool_ValPred_T<Val>::Self()
- { return this; }
-
-template <class Val>
-ZRef<ZExpr_Bool> ZExpr_Bool_ValPred_T<Val>::Clone()
- { return this; }
-
-template <class Val>
-void ZExpr_Bool_ValPred_T<Val>::Accept_Expr_Bool_ValPred(
- ZVisitor_Expr_Bool_ValPred_T<Val>& iVisitor)
- { iVisitor.Visit_Expr_Bool_ValPred(this); }
-
-template <class Val>
-const ZValPred_T<Val>& ZExpr_Bool_ValPred_T<Val>::GetValPred()
- { return fValPred; }
-
-// =================================================================================================
-#pragma mark -
-#pragma mark * ZVisitor_Expr_Bool_ValPred_T
-
-template <class Val>
-class ZVisitor_Expr_Bool_ValPred_T
-: public virtual ZVisitor_Expr_Op0_T<ZExpr_Bool>
- {
- typedef ZVisitor_Expr_Op0_T<ZExpr_Bool> inherited;
-public:
- virtual void Visit_Expr_Bool_ValPred(const ZRef<ZExpr_Bool_ValPred_T<Val> >& iExpr);
- };
-
-template <class Val>
-void ZVisitor_Expr_Bool_ValPred_T<Val>::Visit_Expr_Bool_ValPred(
- const ZRef<ZExpr_Bool_ValPred_T<Val> >& iExpr)
- { this->Visit_Expr_Op0(iExpr); }
-
-// =================================================================================================
-#pragma mark -
-#pragma mark * Operators
-
-template <class Val>
-ZRef<ZExpr_Bool> sExpr_Bool(const ZValPred_T<Val>& iValPred)
- { return new ZExpr_Bool_ValPred_T<Val>(iValPred); }
-
-template <class Val>
-ZRef<ZExpr_Bool_Not> operator~(const ZValPred_T<Val>& iValPred)
- { return new ZExpr_Bool_Not(sExpr_Bool(iValPred)); }
-
-template <class Val>
-ZRef<ZExpr_Bool> operator&(bool iBool, const ZValPred_T<Val>& iValPred)
- {
- if (iBool)
- return sExpr_Bool(iValPred);
- return new ZExpr_Bool_False;
- }
-
-template <class Val>
-ZRef<ZExpr_Bool> operator&(const ZValPred_T<Val>& iValPred, bool iBool)
- {
- if (iBool)
- return sExpr_Bool(iValPred);
- return new ZExpr_Bool_False;
- }
-
-template <class Val>
-ZRef<ZExpr_Bool> operator|(bool iBool, const ZValPred_T<Val>& iValPred)
- {
- if (iBool)
- return new ZExpr_Bool_True;
- return sExpr_Bool(iValPred);
- }
-
-template <class Val>
-ZRef<ZExpr_Bool> operator|(const ZValPred_T<Val>& iValPred, bool iBool)
- {
- if (iBool)
- return new ZExpr_Bool_True;
- return sExpr_Bool(iValPred);
- }
-
-template <class Val>
-ZRef<ZExpr_Bool> operator&(const ZValPred_T<Val>& iLHS, const ZValPred_T<Val>& iRHS)
- { return new ZExpr_Bool_And(sExpr_Bool(iLHS), sExpr_Bool(iRHS)); }
-
-template <class Val>
-ZRef<ZExpr_Bool> operator&(const ZValPred_T<Val>& iLHS, const ZRef<ZExpr_Bool>& iRHS)
- { return new ZExpr_Bool_And(sExpr_Bool(iLHS), iRHS); }
-
-template <class Val>
-ZRef<ZExpr_Bool> operator&(const ZRef<ZExpr_Bool>& iLHS, const ZValPred_T<Val>& iRHS)
- { return new ZExpr_Bool_And(iLHS, sExpr_Bool(iRHS)); }
-
-template <class Val>
-ZRef<ZExpr_Bool>& operator&=(ZRef<ZExpr_Bool>& ioLHS, const ZValPred_T<Val>& iRHS)
- { return ioLHS = ioLHS & iRHS; }
-
-template <class Val>
-ZRef<ZExpr_Bool> operator|(const ZValPred_T<Val>& iLHS, const ZValPred_T<Val>& iRHS)
- { return new ZExpr_Bool_Or(sExpr_Bool(iLHS), sExpr_Bool(iRHS)); }
-
-template <class Val>
-ZRef<ZExpr_Bool> operator|(const ZValPred_T<Val>& iLHS, const ZRef<ZExpr_Bool>& iRHS)
- { return new ZExpr_Bool_Or(sExpr_Bool(iLHS), iRHS); }
-
-template <class Val>
-ZRef<ZExpr_Bool> operator|(const ZRef<ZExpr_Bool>& iLHS, const ZValPred_T<Val>& iRHS)
- { return new ZExpr_Bool_Or(iLHS, sExpr_Bool(iRHS)); }
-
-template <class Val>
-ZRef<ZExpr_Bool>& operator|=(ZRef<ZExpr_Bool>& ioLHS, const ZValPred_T<Val>& iRHS)
- { return ioLHS = ioLHS | iRHS; }
-
-} // namespace ZooLib
-
-#endif // __ZExpr_Bool_ValPred_T__
Modified: trunk/zoolib/source/cxx/zoolib/ZUtil_Strim_ValPred_Any.cpp
===================================================================
--- trunk/zoolib/source/cxx/zoolib/ZUtil_Strim_ValPred_Any.cpp 2011-01-02 00:44:35 UTC (rev 1842)
+++ trunk/zoolib/source/cxx/zoolib/ZUtil_Strim_ValPred_Any.cpp 2011-01-02 19:20:12 UTC (rev 1843)
@@ -19,6 +19,7 @@
------------------------------------------------------------------------------------------------- */
#include "zoolib/ZUtil_Strim_ValPred_Any.h"
+#include "zoolib/ZValPred_Any.h"
#include "zoolib/ZYad_Any.h"
#include "zoolib/ZYad_ZooLibStrim.h"
@@ -27,11 +28,6 @@
using std::string;
-typedef ZValComparator_Simple_T<ZVal_Any> ZValComparator_Simple;
-typedef ZValComparand_Name_T<ZVal_Any> ZValComparand_Name;
-typedef ZValComparand_Var_T<ZVal_Any> ZValComparand_Var;
-typedef ZValComparand_Const_T<ZVal_Any> ZValComparand_Const;
-
// =================================================================================...
[truncated message content] |