Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

TriggerAnalyzer Class Reference

Inheritance diagram for TriggerAnalyzer:

Inheritance graph
[legend]
Collaboration diagram for TriggerAnalyzer:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TriggerAnalyzer (const cmt_string &package_name)
void begin ()
void filter (const cmt_string &line)
void end ()

Private Attributes

cmt_string package

Constructor & Destructor Documentation

TriggerAnalyzer::TriggerAnalyzer const cmt_string package_name  ) 
 

Definition at line 236 of file cmt_triggers.cxx.

00236                                                                 :
00237   package (package_name)
00238 {
00239 }


Member Function Documentation

void TriggerAnalyzer::begin  )  [virtual]
 

Reimplemented from Awk.

Definition at line 241 of file cmt_triggers.cxx.

00242 {
00243 }

void TriggerAnalyzer::end  )  [virtual]
 

Reimplemented from Awk.

Definition at line 308 of file cmt_triggers.cxx.

00309 {
00310 }

void TriggerAnalyzer::filter const cmt_string line  )  [virtual]
 

Reimplemented from Awk.

Definition at line 245 of file cmt_triggers.cxx.

References Libmap::add(), Libmap::add_trigger(), Libmap::add_use(), CmtSystem::cmt_string_vector, cmt_string::find(), Cmt::get_quiet(), cmt_string::replace(), cmt_vector< T >::size(), CmtSystem::split(), and cmt_string::substr().

00246 {
00247   int pos = line.find ("=");
00248   if (pos == 0)
00249     {
00250       if (!Cmt::get_quiet ())
00251         {
00252           cerr << "Syntax error in trigger file : empty name" << endl;
00253         }
00254       exit (0);
00255     }
00256   if (pos == cmt_string::npos)
00257     {
00258       if (!Cmt::get_quiet ())
00259         {
00260           cerr << "Syntax error in trigger file : no = sign" << endl;
00261         }
00262       exit (0);
00263     }
00264 
00265   cmt_string name;
00266   cmt_string text;
00267   CmtSystem::cmt_string_vector words;
00268 
00269   line.substr (0, pos, name);
00270   line.substr (pos + 1, text);
00271   CmtSystem::split (text, " ", words);
00272 
00273   if (name.find ("_triggers") != cmt_string::npos)
00274     {
00275       name.replace ("_triggers", "");
00276 
00277       Libmap& libmap = Libmap::add (name, package);
00278 
00279       for (int i = 0; i < words.size (); i++)
00280         {
00281           const cmt_string& w = words[i];
00282           libmap.add_trigger (w);
00283         }
00284     }
00285   else if (name.find ("_implied_libraries") != cmt_string::npos)
00286     {
00287       name.replace ("_implied_libraries", "");
00288 
00289       Libmap& libmap = Libmap::add (name, package);
00290 
00291       for (int i = 0; i < words.size (); i++)
00292         {
00293           const cmt_string& w = words[i];
00294           libmap.add_use (w);
00295         }
00296     }
00297   else
00298     {
00299       if (!Cmt::get_quiet ())
00300         {
00301           cerr << "Syntax error in trigger file : bad keyword (" << 
00302               name << ")" << endl;
00303         }
00304       exit (0);
00305     }
00306 }


Member Data Documentation

cmt_string TriggerAnalyzer::package [private]
 

Definition at line 231 of file cmt_triggers.cxx.


The documentation for this class was generated from the following file:
Generated on Mon May 2 10:26:04 2005 for CMT by doxygen 1.3.5