00001 00014 #ifndef UnnamedLoc_H 00015 #define UnnamedLoc_H 00016 00017 #include "Location.hpp" 00018 00019 namespace OA { 00020 00026 class UnnamedLoc: public Location { 00027 public: 00028 UnnamedLoc(ExprHandle h, bool isLocal) : mExprHandle(h), mLocal(isLocal) 00029 { } 00030 00032 UnnamedLoc(UnnamedLoc &other); 00033 00034 ~UnnamedLoc() { } 00035 00036 void acceptVisitor(LocationVisitor& pVisitor); 00037 00038 //***************************************************************** 00039 // Subclass type methods 00040 //***************************************************************** 00041 bool isaUnnamed() { return true; } 00042 00043 //***************************************************************** 00044 // Info methods 00045 //***************************************************************** 00047 OA_ptr<Location> getBaseLoc(); 00048 00049 bool isLocal() { return mLocal; } 00050 bool isUnique() { return false; } 00051 00052 /* PLM 1/23/07 deprecated hasFullAccuracy 00053 bool hasFullAccuracy() { return false; } 00054 */ 00055 00056 ExprHandle getExprHandle() { return mExprHandle; } 00057 00058 //***************************************************************** 00059 // Relationship methods 00060 //***************************************************************** 00061 bool operator<(Location & other); 00062 bool operator==(Location& other); 00063 00064 bool mayOverlap(Location& other); 00065 00066 bool mustOverlap(Location& other); 00067 00068 bool subSetOf(Location& other); 00069 00070 //***************************************************************** 00071 // Annotation Interface 00072 //***************************************************************** 00073 void output(IRHandlesIRInterface& ir); 00074 00075 //***************************************************************** 00076 // Debugging 00077 //***************************************************************** 00078 void dump(std::ostream& os); 00079 void dump(std::ostream& os, OA_ptr<IRHandlesIRInterface> pIR); 00080 00081 std::string toString(OA_ptr<IRHandlesIRInterface> pIR); 00082 00083 virtual int getOrder() { return sOrder; } 00084 00085 private: 00086 ExprHandle mExprHandle; 00087 bool mLocal; 00088 00089 static const int sOrder = 200; 00090 }; 00091 00092 } // end namespace 00093 00094 #endif
1.6.1