home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / cppimporte.tcl < prev    next >
Text File  |  1997-07-30  |  2KB  |  87 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)cppimporte.tcl    /main/titanic/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)cppimporte.tcl    /main/titanic/2   30 Jul 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12.  
  13. require cppgclasses.tcl
  14. require cppgrammar.tcl
  15. require cppgentor.tcl
  16.  
  17. # End user added include file section
  18.  
  19. require "importer.tcl"
  20.  
  21. Class CppImporter : {Importer} {
  22.     constructor
  23.     method destructor
  24.     method importNew
  25.     method generateOopl
  26.     method getOoplFileTypesToGenerateFor
  27. }
  28.  
  29. constructor CppImporter {class this} {
  30.     set this [Importer::constructor $class $this]
  31.     # Start constructor user section
  32.     # End constructor user section
  33.     return $this
  34. }
  35.  
  36. method CppImporter::destructor {this} {
  37.     # Start destructor user section
  38.     # End destructor user section
  39.     $this Importer::destructor
  40. }
  41.  
  42. method CppImporter::importNew {this} {
  43.     $this Importer::importNew
  44.     set fileHandler [CppFileHandler new]
  45.     set cppGenerator [CppGenerator new]
  46.  
  47.     set specialFileList [$fileHandler getMakefileName]
  48.     if {![lempty $specialFileList]} {
  49.         $cppGenerator generateSpecialFiles $specialFileList
  50.     }
  51. }
  52.  
  53. method CppImporter::generateOopl {this classes} {
  54.  
  55.     set fileHandler [CppFileHandler new]
  56.     $fileHandler sourceTclFiles
  57.     set selectedClasses [List new]
  58.  
  59.     foreach class $classes {
  60.         if [$class isExternal] {
  61.             continue
  62.         }
  63.  
  64.         if {[$class getName] == ""} {
  65.             m4_warning $W_CLASS_WITHOUT_NAME
  66.         } else {
  67.             $selectedClasses append $class
  68.         }
  69.     }
  70.  
  71.     set cppGenerator [CppGenerator new]
  72.     set generatedSections [$cppGenerator generate $selectedClasses]
  73.  
  74.     $generatedSections foreach class classToSection {
  75.         $classToSection foreach type section {
  76.             $fileHandler writeSectionToFile $section $class $type
  77.         }
  78.     }
  79. }
  80.  
  81. method CppImporter::getOoplFileTypesToGenerateFor {this} {
  82.     return {{c++} {h++}}
  83. }
  84.  
  85. # Do not delete this line -- regeneration end marker
  86.  
  87.