#include <cmt_cmtpath_pattern.h>
Collaboration diagram for CmtPathPattern:
Public Types |
|
typedef cmt_vector< CmtPathPattern >? | CmtPathPatternVector |
typedef cmt_vector< CmtPathPattern * >? | CmtPathPatternPtrVector |
Public Methods |
|
? | CmtPathPattern () |
? | ~CmtPathPattern () |
void? | clear () |
void? | apply () const |
? |
Applies a pattern to all CMTPATH entries. |
void? | expand (cmt_string &line, const cmt_string &path, const cmt_string &project) const |
Static Public Methods |
|
void? | action (const CmtSystem::cmt_string_vector &words, Use *use) |
void? | add (const CmtSystem::cmt_string_vector &words, Use *use) |
int? | pattern_number () |
? |
Get the number of registered patterns. |
CmtPathPattern &? | pattern (int index) |
? |
Get the index'th pattern in the database. |
void? | clear_all () |
CmtPathPatternVector &? | patterns () |
void? | apply_all () |
? |
Applies all patterns to all CMTPATH item. |
void? | show_all () |
? |
this is the cmt show cmtpath_patterns command It just shows the cmtpath_pattern declarations. |
Public Attributes |
|
cmt_string? | line |
Use *? | use |
|
? |
Definition at line 16 of file cmt_cmtpath_pattern.h. |
|
? |
Definition at line 15 of file cmt_cmtpath_pattern.h. |
|
? |
Definition at line 166 of file cmt_cmtpath_pattern.cxx. 00167 { 00168 } |
|
? |
Definition at line 171 of file cmt_cmtpath_pattern.cxx. 00173 { 00174 } |
|
? |
Definition at line 17 of file cmt_cmtpath_pattern.cxx. References add(), Cmt::get_debug(), and cmt_vector< cmt_string >::size(). Referenced by KwdCmtPathPattern::action(). 00018 { 00019 if (words.size () < 1) return; 00020 00021 // 00022 // expected syntax is: 00023 // 00024 // cmtpath_pattern any-cmt-statement 00025 // 00026 // where any-cmt-statement may contain the "template" 00027 // 00028 // |
|
? |
Definition at line 40 of file cmt_cmtpath_pattern.cxx. References cmt_vector< CmtPathPattern >::add(), clear(), cmt_string::find(), line, cmt_string::npos, patterns(), cmt_vector< cmt_string >::size(), and use. Referenced by action(). 00041 { 00042 static CmtPathPatternVector& CmtPathPatterns = patterns (); 00043 00044 CmtPathPattern& p = CmtPathPatterns.add (); 00045 00046 p.clear (); 00047 00048 p.use = use; 00049 00050 int first_word = 1; 00051 00052 // 00053 // Install the cmt-statement as a vector of words. 00054 // 00055 for (int i = first_word; i < words.size (); i++) 00056 { 00057 bool need_quotes = (i > (first_word + 1)); 00058 00059 cmt_string& s = words[i]; 00060 00061 if (i > first_word) p.line += " "; 00062 00063 if (s == ";") first_word = i+1; 00064 00065 if ((s == "\n") | (s == ";")) 00066 { 00067 p.line += "\n "; 00068 } 00069 else 00070 { 00071 cmt_string sep = "\""; 00072 00073 if (s.find (sep) != cmt_string::npos) 00074 { 00075 sep = "\'"; 00076 } 00077 00078 if (!need_quotes) sep = ""; 00079 00080 p.line += sep; 00081 p.line += s; 00082 p.line += sep; 00083 } 00084 } 00085 } |
|
? |
Applies a pattern to all CMTPATH entries. Definition at line 224 of file cmt_cmtpath_pattern.cxx. References Use::current(), expand(), cmt_string::find(), Cmt::get_debug(), Use::get_package_name(), line, cmt_string::npos, SyntaxParser::parse_requirements_text(), Project::reverse_broadcast(), and use. Referenced by apply_all(). 00225 { 00226 if (Cmt::get_debug ()) 00227 { 00228 cout << "CmtPathPattern::apply> cmtpath_pattern defined in " << use->get_package_name () << endl; 00229 } 00230 00231 Use& current_use = Use::current (); 00232 00233 bool is_constant = ((line.find (" |
|
? |
Applies all patterns to all CMTPATH item. Definition at line 131 of file cmt_cmtpath_pattern.cxx. References apply(), patterns(), and cmt_vector< CmtPathPattern >::size(). Referenced by CmtInstallAreaMgr::config(), and Cmt::set_standard_macros(). 00132 { 00133 static CmtPathPatternVector& CmtPathPatterns = patterns (); 00134 00135 int i; 00136 00137 for (i = 0; i < CmtPathPatterns.size (); i++) 00138 { 00139 CmtPathPattern& p = CmtPathPatterns[i]; 00140 00141 p.apply (); 00142 } 00143 } |
|
? |
Definition at line 177 of file cmt_cmtpath_pattern.cxx. Referenced by add(), and clear_all(). |
|
? |
Definition at line 107 of file cmt_cmtpath_pattern.cxx. References cmt_vector< CmtPathPattern >::clear(), clear(), patterns(), and cmt_vector< CmtPathPattern >::size(). Referenced by Database::clear(). 00108 { 00109 static CmtPathPatternVector& CmtPathPatterns = patterns (); 00110 00111 for (int i = 0; i < CmtPathPatterns.size (); i++) 00112 { 00113 CmtPathPattern& p = CmtPathPatterns[i]; 00114 p.clear (); 00115 } 00116 00117 CmtPathPatterns.clear (); 00118 } |
|
? |
Definition at line 258 of file cmt_cmtpath_pattern.cxx. References cmt_string::c_str(), line, and cmt_string::replace_all(). Referenced by apply(), and CmtPathPatternProjectAction::run(). 00261 { 00262 replacement = line; 00263 00264 if (replacement != "") 00265 { 00266 // Substitute |
|
? |
Get the index'th pattern in the database. Definition at line 100 of file cmt_cmtpath_pattern.cxx. References patterns(). 00101 { 00102 static CmtPathPatternVector& CmtPathPatterns = patterns (); 00103 00104 return (CmtPathPatterns[index]); 00105 } |
|
? |
Get the number of registered patterns. Definition at line 90 of file cmt_cmtpath_pattern.cxx. References patterns(), and cmt_vector< CmtPathPattern >::size(). 00091 { 00092 static CmtPathPatternVector& CmtPathPatterns = patterns (); 00093 00094 return (CmtPathPatterns.size ()); 00095 } |
|
? |
Definition at line 120 of file cmt_cmtpath_pattern.cxx. References Database::cmtpath_patterns(), and Database::instance(). Referenced by add(), apply_all(), clear_all(), pattern(), pattern_number(), and show_all(). 00121 { 00122 static Database& db = Database::instance (); 00123 static CmtPathPatternVector& CmtPathPatterns = db.cmtpath_patterns (); 00124 00125 return (CmtPathPatterns); 00126 } |
|
? |
this is the cmt show cmtpath_patterns command It just shows the cmtpath_pattern declarations. Definition at line 149 of file cmt_cmtpath_pattern.cxx. References Use::get_package_name(), line, patterns(), cmt_vector< CmtPathPattern >::size(), use, and Use::version. Referenced by Cmt::do_show_cmtpath_patterns(). 00150 { 00151 static CmtPathPatternVector& CmtPathPatterns = patterns (); 00152 00153 int i; 00154 00155 for (i = 0; i < CmtPathPatterns.size (); i++) 00156 { 00157 CmtPathPattern& p = CmtPathPatterns[i]; 00158 00159 cout << "# " << p.use->get_package_name () << " " << p.use->version 00160 << " adds a cmtpath_pattern as " << endl; 00161 cout << " " << p.line << endl; 00162 } 00163 } |
|
? |
Definition at line 38 of file cmt_cmtpath_pattern.h. Referenced by add(), apply(), clear(), expand(), and show_all(). |
|
? |
Definition at line 39 of file cmt_cmtpath_pattern.h. Referenced by add(), apply(), clear(), and show_all(). |