LRDE Tiger Compiler  1.34a $Id: 7fef12e1f5fa43449d667a0eec1d837c40fc1202 $
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
path.hh
Go to the documentation of this file.
1 
6 #ifndef MISC_PATH_HH
7 # define MISC_PATH_HH
8 
9 # include <string>
10 # include <list>
11 
12 namespace misc
13 {
16  class path
17  {
18  public:
21 
22  path();
23 
25  path(std::string p);
26 
29  path(const char* p);
30 
32 
35 #ifdef SWIG
36  %rename(assign) operator=(const path& rhs);
37 #endif
38  path& operator=(const path& rhs);
39  path& operator+=(const path& rhs);
40  path operator+(const std::string& rhs) const;
41  bool operator==(const path& rhs) const;
42 
44 
47 #ifdef SWIG
48  %rename(__str__) operator std::string() const;
49 #endif
50  operator std::string() const;
51  std::ostream& dump(std::ostream& ostr) const;
52 
54 
56  bool absolute_get() const;
58  bool empty() const;
59 
60  private:
62  typedef std::list<std::string> path_type;
63 
65  void append_dir(std::string dir);
66 
68  void init(std::string p);
69 
72 
74  bool absolute_;
75  };
76 
77  std::ostream&
78  operator<<(std::ostream& ostr, const path& p);
79 }
80 
81 # include <misc/path.hxx>
82 
83 #endif // !MISC_PATH_HH