Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

unify.h

Go to the documentation of this file.
00001 #ifndef UNIFY_H
00002 #define UNIFY_H
00003 
00004 #include <map>
00005 #include <set>
00006 #include <string>
00007 
00008 #include "parser-structs.h"
00009 #include "constraint.h"
00010 
00011 using namespace std;
00012 
00013 struct unifier
00014 {
00020       friend ostream &operator<<(ostream &os, const unifier *u);
00021 
00025       ~unifier();
00026       
00030       static int count;
00031 
00035       unifier();
00036 
00043       bool add_binding(const string &s, const c_term *t);
00044 
00050       void apply_to(struct c_term *t, bool skip_renaming = false) const;
00051 
00057       void apply_to(struct c_rule *r, bool skip_renaming = false) const;
00058 
00063       void apply_to(con_type &c) const;
00064 
00074       bool unify(const struct c_term *t1, const struct c_term *t2);
00075 
00085       bool unify(const struct c_rule *r1, const struct c_rule *r2);
00086 
00087       private:
00088 
00089       map<string, c_term*> bindings;
00090 };
00091 
00092 #endif //UNIFY_H

Generated on Wed Feb 16 20:53:35 2005 for Fixpoint Engine by  doxygen 1.3.9.1