#include
Collaboration diagram for Constituent:
Public Types |
|
typedef cmt_vector< Constituent >? | ConstituentVector |
Public Methods |
|
? | Constituent () |
? | ~Constituent () |
void? | parse () |
virtual void? | clear () |
virtual void? | build_makefile (bool simulation) const |
virtual void? | build_msdev_file (bool simulation) const |
virtual void? | build_vsnet_file (bool simulation) const |
virtual void? | show () const |
Static Public Methods |
|
void? | action (ConstituentType type, const CmtSystem::cmt_string_vector &words) |
Constituent *? | find (const cmt_string &name) |
Constituent *? | add (ConstituentType type, const cmt_string &name, const cmt_string &generator) |
Constituent *? | add_for_action (const cmt_string &name) |
void? | show (const cmt_string &name) |
void? | parse_all () |
void? | show_all () |
void? | show_names () |
void? | build_all_makefiles (bool simulation) |
void? | build_all_msdev_files (bool simulation) |
void? | build_all_vsnet_files (bool simulation) |
void? | clear_all () |
ConstituentVector &? | constituents () |
Public Attributes |
|
cmt_string? | name |
cmt_string? | generator |
ConstituentType? | type |
Group *? | group |
cmt_string? | suffix |
CmtSystem::cmt_string_vector? | modules |
bool? | need_OS9 |
bool? | windows |
bool? | no_static |
bool? | no_share |
bool? | need_prototypes |
bool? | need_check |
bool? | build_triggers |
bool? | has_target_tag |
CmtSystem::cmt_string_vector? | excludes |
cmt_vector< cmt_regexp >? | exclude_exprs |
CmtSystem::cmt_string_vector? | selects |
cmt_vector< cmt_regexp >? | select_exprs |
CmtSystem::cmt_string_vector? | includes |
CmtSystem::cmt_string_vector? | imports |
Variable::VariableVector? | variables |
Private Attributes |
|
CmtSystem::cmt_string_vector? | parameters |
|
? |
Definition at line 18 of file cmt_constituent.h. |
|
? |
Definition at line 437 of file cmt_constituent.cxx. References clear(). 00438 { 00439 clear (); 00440 } |
|
? |
Definition at line 443 of file cmt_constituent.cxx. 00444 { 00445 } |
|
? |
Definition at line 304 of file cmt_constituent.cxx. References cmt_vector< cmt_string >::add(), add(), ConstituentType, Document, generator, name, parameters, cmt_vector< cmt_string >::size(), and type. Referenced by KwdLibrary::action(), KwdDocument::action(), and KwdApplication::action(). 00306 { 00307 cmt_string generator; 00308 cmt_string name; 00309 Constituent* constituent; 00310 00311 int i = 1; 00312 00313 if (type == Document) 00314 { 00315 generator = words[i]; 00316 if (generator == "") return; 00317 i++; 00318 } 00319 00320 name = words[i]; 00321 if (name == "") return; 00322 i++; 00323 00324 constituent = add (type, name, generator); 00325 00326 for (;i < words.size (); i++) 00327 { 00328 const cmt_string& w = words[i]; 00329 cmt_string& parameter = constituent->parameters.add (); 00330 parameter = w; 00331 } 00332 } |
|
? |
Definition at line 369 of file cmt_constituent.cxx. References cmt_vector< Constituent >::add(), clear(), constituents(), ConstituentType, find(), generator, name, Cmt::need_prototypes(), need_prototypes, and type. Referenced by action(), and add_for_action(). 00372 { 00373 static ConstituentVector& Constituents = constituents (); 00374 00375 { 00376 Constituent* constituent; 00377 00378 if (name == "") return (0); 00379 00380 constituent = find (name); 00381 if (constituent != 0) return (constituent); 00382 } 00383 00384 Constituent& constituent = Constituents.add (); 00385 constituent.clear (); 00386 00387 constituent.name = name; 00388 constituent.generator = generator; 00389 constituent.type = type; 00390 constituent.need_prototypes = Cmt::need_prototypes (); 00391 00392 return (&constituent); 00393 } |
|
? |
Definition at line 396 of file cmt_constituent.cxx. References cmt_vector< cmt_string >::add(), Group::add(), add(), Document, group, has_target_tag, and parameters. Referenced by parse_all(). 00397 { 00398 Constituent* constituent; 00399 00400 constituent = add (Document, name, "cmt_action_runner"); 00401 00402 constituent->group = Group::add ("cmt_actions"); 00403 constituent->has_target_tag = true; 00404 00405 cmt_string& p1 = constituent->parameters.add (); 00406 p1 = "action_value="; 00407 p1 += "'$("; 00408 p1 += name; 00409 p1 += ")'"; 00410 00411 return (constituent); 00412 } |
|
? |
Definition at line 474 of file cmt_constituent.cxx. References build_makefile(), constituents(), and cmt_vector< Constituent >::size(). Referenced by Cmt::build_makefile(). 00475 { 00476 static ConstituentVector& Constituents = constituents (); 00477 00478 int i; 00479 00480 for (i = 0; i < Constituents.size (); i++) 00481 { 00482 Constituent& constituent = Constituents[i]; 00483 00484 constituent.build_makefile (simulation); 00485 } 00486 } |
|
? |
Definition at line 489 of file cmt_constituent.cxx. References build_msdev_file(), Generator::build_msdev_workspace(), constituents(), and cmt_vector< Constituent >::size(). Referenced by Cmt::build_msdev_file(). 00490 { 00491 static ConstituentVector& Constituents = constituents (); 00492 00493 int i; 00494 00495 Generator::build_msdev_workspace (Constituents); 00496 00497 for (i = 0; i < Constituents.size (); i++) 00498 { 00499 Constituent& constituent = Constituents[i]; 00500 00501 constituent.build_msdev_file (simulation); 00502 } 00503 } |
|
? |
Definition at line 507 of file cmt_constituent.cxx. References build_vsnet_file(), Generator::build_vsnet_workspace(), constituents(), and cmt_vector< Constituent >::size(). Referenced by Cmt::build_vsnet_file(). 00508 { 00509 static ConstituentVector& Constituents = constituents (); 00510 00511 int i; 00512 00513 Generator::build_vsnet_workspace (Constituents); 00514 00515 for (i = 0; i < Constituents.size (); i++) 00516 { 00517 Constituent& constituent = Constituents[i]; 00518 00519 constituent.build_vsnet_file (simulation); 00520 } 00521 } |
|
? |
Definition at line 524 of file cmt_constituent.cxx. References Generator::build_constituent_makefile(). Referenced by build_all_makefiles(), and Cmt::build_makefile(). 00525 { 00526 if (!simulation) 00527 { 00528 Generator::build_constituent_makefile (*this); 00529 } 00530 } |
|
? |
Definition at line 533 of file cmt_constituent.cxx. References Generator::build_msdev(). Referenced by build_all_msdev_files(), and Cmt::build_msdev_file(). 00534 { 00535 if (!simulation) 00536 { 00537 Generator::build_msdev (*this); 00538 } 00539 } |
|
? |
Definition at line 543 of file cmt_constituent.cxx. References Generator::build_vsnet(). Referenced by build_all_vsnet_files(), and Cmt::build_vsnet_file(). 00544 { 00545 if (!simulation) 00546 { 00547 Generator::build_vsnet (*this); 00548 } 00549 } |
|
? |
Definition at line 448 of file cmt_constituent.cxx. References build_triggers, cmt_vector< Variable >::clear(), cmt_vector< cmt_regexp >::clear(), cmt_vector< cmt_string >::clear(), Document, exclude_exprs, excludes, generator, group, has_target_tag, imports, includes, modules, name, need_check, need_OS9, need_prototypes, no_share, no_static, parameters, select_exprs, selects, type, variables, and windows. Referenced by add(), clear_all(), and Constituent(). 00449 { 00450 name = ""; 00451 generator = ""; 00452 type = Document; 00453 group = 0; 00454 modules.clear (); 00455 parameters.clear (); 00456 need_OS9 = false; 00457 windows = false; 00458 no_static = false; 00459 no_share = false; 00460 need_prototypes = false; 00461 need_check = false; 00462 build_triggers = false; 00463 has_target_tag = false; 00464 excludes.clear (); 00465 exclude_exprs.clear (); 00466 selects.clear (); 00467 select_exprs.clear (); 00468 includes.clear (); 00469 imports.clear (); 00470 variables.clear (); 00471 } |
|
? |
Definition at line 415 of file cmt_constituent.cxx. References cmt_vector< Constituent >::clear(), clear(), constituents(), and cmt_vector< Constituent >::size(). Referenced by Database::clear(). 00416 { 00417 static ConstituentVector& Constituents = constituents (); 00418 00419 for (int i = 0; i < Constituents.size (); i++) 00420 { 00421 Constituent& c = Constituents[i]; 00422 c.clear (); 00423 } 00424 Constituents.clear (); 00425 } |
|
? |
Definition at line 428 of file cmt_constituent.cxx. References Database::constituents(), and Database::instance(). Referenced by add(), ConstituentsMakefileGenerator::build(), MakeSetupGenerator::build(), build_all_makefiles(), build_all_msdev_files(), build_all_vsnet_files(), clear_all(), StandardMacroBuilder::fill_for_all_constituents(), find(), parse_all(), Cmt::set_standard_macros(), show_all(), and show_names(). 00429 { 00430 static Database& db = Database::instance (); 00431 static ConstituentVector& Constituents = db.constituents (); 00432 00433 return (Constituents); 00434 } |
|
? |
Definition at line 95 of file cmt_constituent.cxx. References constituents(), name, and cmt_vector< Constituent >::size(). Referenced by add(), DependencyGenerator::build(), Generator::build_constituent_makefile(), Cmt::build_makefile(), Cmt::build_msdev_file(), Cmt::build_vsnet_file(), Cmt::do_show_constituent(), TriggerGenerator::run(), and show(). 00096 { 00097 static ConstituentVector& Constituents = constituents (); 00098 00099 int constituent_index; 00100 00101 if (Constituents.size () == 0) return (0); 00102 00103 for (constituent_index = 0; 00104 constituent_index < Constituents.size (); 00105 constituent_index++) 00106 { 00107 Constituent& constituent = Constituents[constituent_index]; 00108 00109 if (constituent.name == name) 00110 { 00111 return (&constituent); 00112 } 00113 } 00114 00115 return (0); 00116 } |
|
? |
Definition at line 335 of file cmt_constituent.cxx. References cmt_vector< cmt_string >::clear(), Symbol::expand(), modules, parameters, constituents_action_iterator::set(), cmt_vector< cmt_string >::size(), and CmtSystem::split(). Referenced by parse_all(). 00336 { 00337 if (parameters.size () == 0) return; 00338 00339 Constituent& me = *this; 00340 00341 modules.clear (); 00342 00343 constituents_action_iterator it (me); 00344 00345 for (int i = 0; i < parameters.size (); i++) 00346 { 00347 const cmt_string& w = parameters[i]; 00348 cmt_string ew = w; 00349 00350 Symbol::expand (ew); 00351 00352 CmtSystem::cmt_string_vector ws; 00353 00354 CmtSystem::split (ew, " \t", ws); 00355 00356 for (int j = 0; j < ws.size (); ++j) 00357 { 00358 const cmt_string& w = ws[j]; 00359 00360 //cerr << "Constituent " << name << " Setting module " << w << endl; 00361 it.set (w); 00362 } 00363 } 00364 00365 parameters.clear (); 00366 } |
|
? |
Definition at line 35 of file cmt_constituent.cxx. References add_for_action(), Symbol::build_macro_value(), constituents(), Symbol::name, parse(), cmt_vector< Constituent >::size(), cmt_vector< SymbolValueList >::size(), Symbol::symbol(), Symbol::symbol_number(), Symbol::SymbolAction, Symbol::type, and Symbol::value_lists. Referenced by StandardMacroBuilder::fill_for_all_constituents(). 00036 { 00037 static ConstituentVector& Constituents = constituents (); 00038 00039 int number; 00040 00041 for (number = 0; number < Symbol::symbol_number (); number++) 00042 { 00043 Symbol& symbol = Symbol::symbol (number); 00044 00045 if (symbol.type != Symbol::SymbolAction) continue; 00046 00047 if (symbol.value_lists.size () < 1) continue; 00048 00049 cmt_string value = symbol.build_macro_value (); 00050 00051 if (value != "") 00052 { 00053 add_for_action (symbol.name); 00054 } 00055 } 00056 00057 for (number = 0; number < Constituents.size (); number++) 00058 { 00059 Constituent& constituent = Constituents[number]; 00060 00061 constituent.parse (); 00062 } 00063 } |
|
? |
Definition at line 552 of file cmt_constituent.cxx. References Application, build_triggers, Document, excludes, generator, group, imports, Library, modules, Variable::name, Group::name(), name, need_check, no_share, no_static, selects, cmt_vector< Variable >::size(), cmt_vector< cmt_string >::size(), suffix, type, Variable::value, and variables. 00553 { 00554 int i; 00555 00556 switch (type) 00557 { 00558 case Library: 00559 cout << "library"; 00560 break; 00561 case Application: 00562 cout << "application"; 00563 break; 00564 case Document: 00565 cout << "document " << generator; 00566 break; 00567 } 00568 00569 cout << " " << name; 00570 00571 if (group != 0) 00572 { 00573 cout << " -group=" << group->name (); 00574 } 00575 00576 if (suffix != 0) 00577 { 00578 cout << " -suffix=" << suffix; 00579 } 00580 00581 if ((type == Application) && need_check) 00582 { 00583 cout << " -check"; 00584 } 00585 00586 if ((type == Library) && no_share) 00587 { 00588 cout << " -no_share"; 00589 } 00590 00591 if ((type == Library) && no_static) 00592 { 00593 cout << " -no_static"; 00594 } 00595 00596 if ((type == Library) && build_triggers) 00597 { 00598 cout << " -triggers"; 00599 } 00600 00601 if (has_target_tag) 00602 { 00603 cout << " -target_tag"; 00604 } 00605 00606 for (i = 0; i < (imports.size ()); i++) 00607 { 00608 const cmt_string& import_name = imports[i]; 00609 00610 cout << " -import=" << import_name; 00611 } 00612 00613 for (i = 0; i < (excludes.size ()); i++) 00614 { 00615 const cmt_string& exclude = excludes[i]; 00616 00617 cout << " -x=" << exclude; 00618 } 00619 00620 for (i = 0; i < (selects.size ()); i++) 00621 { 00622 const cmt_string& select = selects[i]; 00623 00624 cout << " -k=" << select; 00625 } 00626 00627 for (i = 0; i < (modules.size ()); i++) 00628 { 00629 const cmt_string& module_name = modules[i]; 00630 00631 cout << " " << module_name; 00632 } 00633 00634 for (i = 0; i < (variables.size ()); i++) 00635 { 00636 const Variable& v = variables[i]; 00637 00638 cout << " " << v.name << "=" << v.value; 00639 } 00640 00641 cout << endl; 00642 } |
|
? |
Definition at line 24 of file cmt_constituent.cxx. References find(). Referenced by Cmt::do_show_constituent(), and show_all(). 00025 { 00026 Constituent* cptr = find (name); 00027 if (cptr == 0) return; 00028 00029 const Constituent& constituent = *cptr; 00030 00031 constituent.show (); 00032 } |
|
? |
Definition at line 66 of file cmt_constituent.cxx. References constituents(), show(), and cmt_vector< Constituent >::size(). Referenced by Cmt::do_show_constituents(). 00067 { 00068 static ConstituentVector& Constituents = constituents (); 00069 00070 int number; 00071 00072 for (number = 0; number < Constituents.size (); number++) 00073 { 00074 const Constituent& constituent = Constituents[number]; 00075 00076 constituent.show (); 00077 } 00078 } |
|
? |
Definition at line 81 of file cmt_constituent.cxx. References constituents(), name, and cmt_vector< Constituent >::size(). Referenced by Cmt::do_show_constituent_names(). 00082 { 00083 static ConstituentVector& Constituents = constituents (); 00084 00085 int number; 00086 00087 for (number = 0; number < Constituents.size (); number++) 00088 { 00089 Constituent& constituent = Constituents[number]; 00090 cout << constituent.name << endl; 00091 } 00092 } |
|
? |
Definition at line 59 of file cmt_constituent.h. Referenced by LibraryGenerator::build(), clear(), constituents_action_iterator::set(), and show(). |
|
? |
Definition at line 62 of file cmt_constituent.h. Referenced by DependencyGenerator::build(), DocumentGenerator::build(), LibraryGenerator::build(), VSNETGenerator::build_project(), MSDEVGenerator::build_project(), clear(), and constituents_action_iterator::set(). |
|
? |
Definition at line 61 of file cmt_constituent.h. Referenced by clear(), constituents_action_iterator::set(), and show(). |
|
? |
Definition at line 48 of file cmt_constituent.h. Referenced by action(), add(), DocumentGenerator::build(), VSNETGenerator::build_project(), MSDEVGenerator::build_project(), clear(), and show(). |
|
? |
Definition at line 50 of file cmt_constituent.h. Referenced by add_for_action(), clear(), constituents_action_iterator::set(), Cmt::set_standard_macros(), and show(). |
|
? |
Definition at line 60 of file cmt_constituent.h. Referenced by add_for_action(), ConstituentsMakefileGenerator::build(), DocumentGenerator::build(), LibraryGenerator::build(), clear(), and constituents_action_iterator::set(). |
|
? |
Definition at line 68 of file cmt_constituent.h. Referenced by clear(), StandardMacroBuilder::fill_for_all_constituents(), constituents_action_iterator::set(), and show(). |
|
? |
Definition at line 67 of file cmt_constituent.h. Referenced by DocumentGenerator::build(), LibraryGenerator::build(), VSNETGenerator::build_project(), MSDEVGenerator::build_project(), clear(), and constituents_action_iterator::set(). |
|
? |
Definition at line 52 of file cmt_constituent.h. Referenced by DependencyGenerator::build(), DocumentGenerator::build(), LibraryGenerator::build(), VSNETGenerator::build_project(), MSDEVGenerator::build_project(), clear(), parse(), constituents_action_iterator::set(), and show(). |
|
? |
Definition at line 47 of file cmt_constituent.h. Referenced by action(), add(), LibraryGenerator::analyze_file(), ConstituentsMakefileGenerator::build(), DocumentGenerator::build(), VSNETGenerator::build_project(), MSDEVGenerator::build_project(), VSNETGenerator::build_workspace(), MSDEVGenerator::build_workspace(), clear(), ApplicationAnalyzer::end(), LibraryAnalyzer::end(), StandardMacroBuilder::fill_for_all_constituents(), find(), CmtGenerator::prepare_output(), constituents_action_iterator::set(), Cmt::set_standard_macros(), show(), and show_names(). |
|
? |
Definition at line 58 of file cmt_constituent.h. Referenced by ConstituentsMakefileGenerator::build(), LibraryGenerator::build(), clear(), constituents_action_iterator::set(), and show(). |
|
? |
Definition at line 53 of file cmt_constituent.h. Referenced by VSNETGenerator::build_project(), MSDEVGenerator::build_project(), clear(), CmtGenerator::prepare_output(), and constituents_action_iterator::set(). |
|
? |
Definition at line 57 of file cmt_constituent.h. Referenced by add(), LibraryGenerator::build(), clear(), and constituents_action_iterator::set(). |
|
? |
Definition at line 56 of file cmt_constituent.h. Referenced by LibraryGenerator::build(), VSNETGenerator::build_project(), MSDEVGenerator::build_project(), clear(), constituents_action_iterator::set(), and show(). |
|
? |
Definition at line 55 of file cmt_constituent.h. Referenced by clear(), constituents_action_iterator::set(), and show(). |
|
? |
Definition at line 72 of file cmt_constituent.h. Referenced by action(), add_for_action(), clear(), and parse(). |
|
? |
Definition at line 65 of file cmt_constituent.h. Referenced by DependencyGenerator::build(), DocumentGenerator::build(), LibraryGenerator::build(), VSNETGenerator::build_project(), MSDEVGenerator::build_project(), clear(), and constituents_action_iterator::set(). |
|
? |
Definition at line 64 of file cmt_constituent.h. Referenced by clear(), constituents_action_iterator::set(), and show(). |
|
? |
Definition at line 51 of file cmt_constituent.h. Referenced by LibraryGenerator::analyze_file(), ConstituentsMakefileGenerator::build(), MSDEVGenerator::build_project(), VSNETGenerator::build_workspace(), MSDEVGenerator::build_workspace(), CmtGenerator::prepare_output(), constituents_action_iterator::set(), and show(). |
|
? |
Definition at line 49 of file cmt_constituent.h. Referenced by action(), add(), LibraryGenerator::build(), Generator::build_constituent_makefile(), VSNETGenerator::build_project(), MSDEVGenerator::build_project(), VSNETGenerator::build_workspace(), MSDEVGenerator::build_workspace(), clear(), StandardMacroBuilder::fill_for_all_constituents(), TriggerGenerator::run(), constituents_action_iterator::set(), and show(). |
|
? |
Definition at line 69 of file cmt_constituent.h. Referenced by ConstituentsMakefileGenerator::build(), DocumentGenerator::build(), LibraryGenerator::build(), VSNETGenerator::build_project(), MSDEVGenerator::build_project(), VSNETGenerator::build_workspace(), MSDEVGenerator::build_workspace(), clear(), LibraryGenerator::java_file_action(), LibraryGenerator::module_file_action(), LibraryGenerator::proto_file_action(), constituents_action_iterator::set(), and show(). |
|
? |
Definition at line 54 of file cmt_constituent.h. Referenced by VSNETGenerator::build_project(), MSDEVGenerator::build_project(), clear(), and constituents_action_iterator::set(). |