1 ///////////////////////////////////////////////////////////////////////////////
2 // This file is generated automatically using Prop (version 2.3.5),
3 // last updated on Jun 18, 1997.
4 // The original source file is "phase4.ph".
5 ///////////////////////////////////////////////////////////////////////////////
7 #define PROP_REWRITING_USED
8 #define PROP_STRCMP_USED
9 #define PROP_QUARK_USED
10 #define PROP_TUPLE2_USED
18 ///////////////////////////////////////////////////////////////////////////////
20 // This class implements the conjunction decomposition phase
21 // Conjunctions are decomposed into natural joins and
22 // projections (edge queries).
23 // Edge queries are queries Q(x,y) defined on each edge (x,y) of
26 ///////////////////////////////////////////////////////////////////////////////
29 class Phase4
: public BURS
, virtual public PaigeGoyal
{
31 Phase4(const Phase4
&); // no copy constructor
32 void operator = (const Phase4
&); // no assignment
34 struct Phase4_StateRec
* stack__
, * stack_top__
;
36 void labeler(const char *, int&, int);
37 void labeler(Quark
, int&, int);
38 void labeler(Exp
& redex
, int&, int);
39 inline virtual void operator () (Exp
& redex
) { int s
; labeler(redex
,s
,0); }
40 void labeler(a_List
<Exp
> * & redex
, int&, int);
41 inline virtual void operator () (a_List
<Exp
> * & redex
) { int s
; labeler(redex
,s
,0); }
42 void labeler(Literal
& redex
, int&, int);
43 inline virtual void operator () (Literal
& redex
) { int s
; labeler(redex
,s
,0); }
51 virtual Exp
phase4(Exp
);
53 Exp
make_projection(Id x
, Id y
, Ids xs
, Exps
, const IdSet
&, Exp predicate
);
54 Exp
decompose_conjunct(Exp
, Ids xs
, Exps
, Exp predicate
);
64 ------------------------------- Statistics -------------------------------
65 Merge matching rules = yes
66 Number of DFA nodes merged = 0
67 Number of ifs generated = 0
68 Number of switches generated = 0
71 Adaptive matching = disabled
72 Fast string matching = disabled
73 Inline downcasts = disabled
74 --------------------------------------------------------------------------