Main Page | Namespace List | Class Hierarchy | Compound List | File List | Compound Members | File Members | Related Pages

Var.hpp

Go to the documentation of this file.
00001 
00027 //
00028 //  file Var.hpp
00029 //  
00030 //  05/09/2002, Bolzano
00031 //
00032 
00033 
00034 #ifndef __Var__
00035 #  define __Var__
00036 
00037 #include "Lst.hpp"
00038 
00039 
00040 // variables
00041 typedef int Var;
00042 #define firstVar 0
00043 
00044 
00045 class Substitution;
00046 
00047 
00048 class VarList :
00049   public Lst<Var>
00050 {
00051  public:
00052   // functions inherited from Lst
00053   const VarList& tail () const
00054     { return static_cast<const VarList&>(Lst<Var>::tail()); }
00055   VarList (Var head, const VarList& tail);
00056   VarList (const VarList& lst);
00057   explicit VarList (Var v); // one-element list
00058   VarList ();
00059 
00060   // miscellaneous
00061   void rectify (VarList, Substitution&, Var& last);
00062   Var max () const; // maximal variable in a non-empty list
00063 };
00064 
00065 
00066 class VarListList :
00067   public Lst<VarList>
00068 {
00069  public:
00070   // functions inherited from Lst
00071   const VarListList& tail () const
00072     { return static_cast<const VarListList&>(Lst<VarList>::tail()); }
00073   VarListList (VarList head, const VarListList& tail);
00074   VarListList (const VarListList& lst);
00075   explicit VarListList (const VarList& t); // one-element list
00076   VarListList ();
00077 };
00078 
00079 
00080 // **************** class VarList, definitions ***********************
00081 
00082 inline
00083 VarList::VarList () 
00084 {
00085 }
00086 
00087 
00088 inline
00089 VarList::VarList (const VarList& lst) 
00090   :
00091   Lst<Var> (lst) 
00092 {
00093 }
00094 
00095 
00096 inline
00097 VarList::VarList (Var v) 
00098   :
00099   Lst<Var> (v) 
00100 {
00101 }
00102 
00103 
00104 inline
00105 VarList::VarList (Var head, const VarList& tail) 
00106   :
00107   Lst<Var> (head,tail) 
00108 {
00109 }
00110 
00111 
00112 // **************** class VarListList, definitions ***********************
00113 
00114 
00115 inline
00116 VarListList::VarListList () 
00117 {
00118 }
00119 
00120 
00121 inline
00122 VarListList::VarListList (const VarListList& lst) 
00123   :
00124   Lst<VarList> (lst) 
00125 {
00126 }
00127 
00128 
00129 inline
00130 VarListList::VarListList (VarList head, const VarListList& tail) 
00131   :
00132   Lst<VarList> (head,tail) 
00133 {
00134 }
00135 
00136 
00137 #endif // __Var__

Generated on Sat Jun 28 15:08:58 2003 for Vampire by doxygen 1.3.2