UnnamedLoc.hpp

Go to the documentation of this file.
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

Generated on Sat Oct 31 05:21:26 2009 for OpenAnalysis by  doxygen 1.6.1