initial
[prop.git] / app / willard / phase4.h
blob2b1cb33f653b02c315ce5d5ff9590a360afa1453
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
11 #include <propdefs.h>
12 #line 1 "phase4.ph"
13 #ifndef phase4_h
14 #define phase4_h
16 #include "paige.h"
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
24 // the query graph.
26 ///////////////////////////////////////////////////////////////////////////////
27 #line 15 "phase4.ph"
28 #line 25 "phase4.ph"
29 class Phase4 : public BURS, virtual public PaigeGoyal {
30 private:
31 Phase4(const Phase4&); // no copy constructor
32 void operator = (const Phase4&); // no assignment
33 public:
34 struct Phase4_StateRec * stack__, * stack_top__;
35 public:
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); }
44 private:
45 #line 16 "phase4.ph"
47 public:
48 Phase4();
49 virtual ~Phase4();
51 virtual Exp phase4(Exp);
52 protected:
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);
55 #line 25 "phase4.ph"
57 #line 25 "phase4.ph"
58 #line 25 "phase4.ph"
61 #endif
62 #line 28 "phase4.ph"
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
69 Number of labels = 0
70 Number of gotos = 0
71 Adaptive matching = disabled
72 Fast string matching = disabled
73 Inline downcasts = disabled
74 --------------------------------------------------------------------------