00001 //----------------------------------------------------------- 00002 // Copyright Christian Arnault LAL-Orsay CNRS 00003 // arnault@lal.in2p3.fr 00004 // See the complete license in cmt_license.txt "http://www.cecill.info". 00005 //----------------------------------------------------------- 00006 00007 #ifndef __cmt_cmtpath_pattern_h__ 00008 #define __cmt_cmtpath_pattern_h__ 00009 00010 #include "cmt_pattern.h" 00011 00012 class CmtPathPattern 00013 { 00014 public: 00015 typedef cmt_vector<CmtPathPattern> CmtPathPatternVector; 00016 typedef cmt_vector<CmtPathPattern*> CmtPathPatternPtrVector; 00017 00018 static void action (const CmtSystem::cmt_string_vector& words, Use* use); 00019 00020 static void add (const CmtSystem::cmt_string_vector& words, Use* use); 00021 00022 static int pattern_number (); 00023 static CmtPathPattern& pattern (int index); 00024 static void clear_all (); 00025 static CmtPathPatternVector& patterns (); 00026 00027 static void apply_all (); 00028 static void show_all (); 00029 00030 public: 00031 CmtPathPattern (); 00032 ~CmtPathPattern (); 00033 00034 void clear (); 00035 void apply () const; 00036 void expand (cmt_string& line, const cmt_string& path, const cmt_string& project) const; 00037 00038 cmt_string line; 00039 Use* use; 00040 }; 00041 00042 #endif