home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / som30tk.zip / som30os2.zip / include / gen_cpp.efw < prev    next >
Text File  |  1996-12-24  |  4KB  |  115 lines

  1. :template
  2. /* # @(#) /47 1.5 12/19/95 14:49:37 [12/24/96 07:52:29] */
  3.  
  4. /*
  5.  *   COMPONENT_NAME: some
  6.  *
  7.  *   ORIGINS: 27
  8.  *
  9.  *
  10.  *   10H9767, 25H7912  (C) COPYRIGHT International Business Machines Corp. 1992,1996 
  11.  *   All Rights Reserved
  12.  *   Licensed Materials - Property of IBM
  13.  *   US Government Users Restricted Rights - Use, duplication or
  14.  *   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  15.  */
  16.  
  17. /*
  18.  *         File:    <classSourceFileStem>.<cppext>
  19.  *       Author:    SOMObjects Emitter Framework.
  20.  *     Contents:    Generic framework implementation for <className>.
  21.  *         Date:    <timeStamp>.
  22.  */
  23.  
  24. #define <className>_Class_Source
  25. #include "<classSourceFileStem>.xih"
  26.  
  27. SOM_Scope boolean  SOMLINK somtGenerateSections(<className> *somSelf)
  28. {
  29.     /* <className>Data *somThis = <className>GetData(somSelf); */
  30.     SOMTClassEntryC *cls = somSelf->_get_somtTargetClass();
  31.     SOMTTemplateOutputC *templte = somSelf->_get_somtTemplate();
  32.     <className>MethodDebug("<className>","somtGenerateSections");
  33.  
  34.     /*
  35.      * Setup symbols that are common to the whole file 
  36.      */
  37.     somSelf->somtFileSymbols();
  38.  
  39.     somSelf->somtEmitProlog();
  40.  
  41.     if (cls != (SOMTClassEntryC *) NULL) {
  42.         somSelf->somtScanBases(
  43.                        "somtEmitBaseIncludesProlog",
  44.                        "somtEmitBaseIncludes",
  45.                        "somtEmitBaseIncludesEpilog");
  46.  
  47.         somSelf->somtEmitMetaInclude();
  48.  
  49.         somSelf->somtEmitClass();
  50.  
  51.         somSelf->somtScanBases(
  52.                        "somtEmitBaseProlog",
  53.                        "somtEmitBase",
  54.                        "somtEmitBaseEpilog");
  55.  
  56.         somSelf->somtEmitMeta();
  57.     }
  58.     somSelf->somtScanConstants("somtEmitConstantProlog",
  59.                       "somtEmitConstant", "somtEmitConstantEpilog");
  60.  
  61.     somSelf->somtScanTypedefs("somtEmitTypedefProlog",
  62.                       "somtEmitTypedef", "somtEmitTypedefEpilog");
  63.  
  64.     somSelf->somtScanStructs("somtEmitStructProlog",
  65.                      "somtEmitStruct", "somtEmitStructEpilog");
  66.  
  67.     somSelf->somtScanUnions("somtEmitUnionProlog",
  68.                     "somtEmitUnion", "somtEmitUnionEpilog");
  69.  
  70.     somSelf->somtScanEnums("somtEmitEnumProlog",
  71.                    "somtEmitEnum", "somtEmitEnumEpilog");
  72.  
  73.     if (cls != (SOMTClassEntryC *) NULL) {
  74.         somSelf->somtScanAttributes("somtEmitAttributeProlog",
  75.                             "somtEmitAttribute", "somtEmitAttributeEpilog");
  76.  
  77.         somSelf->somtScanMethods(
  78.                          "somtImplemented",
  79.                          "somtEmitMethodsProlog",
  80.                          "somtEmitMethod",
  81.                          "somtEmitMethodsEpilog",
  82.                          FALSE);
  83.  
  84.         somSelf->somtEmitRelease();
  85.  
  86.         somSelf->somtScanPassthru(TRUE,
  87.                           "somtEmitPassthruProlog",
  88.                           "somtEmitPassthru",
  89.                           "somtEmitPassthruEpilog");
  90.  
  91.         somSelf->somtScanPassthru(FALSE,
  92.                           "somtEmitPassthruProlog",
  93.                           "somtEmitPassthru",
  94.                           "somtEmitPassthruEpilog");
  95.  
  96.         somSelf->somtScanData(
  97.                       "somtEmitDataProlog",
  98.                       "somtEmitData",
  99.                       "somtEmitDataEpilog");
  100.     }
  101.  
  102.     if (somSelf->_get_somtTargetModule() != (SOMTModuleEntryC *) NULL) {
  103.  
  104.         somSelf->somtScanInterfaces("somtEmitInterfaceProlog",
  105.                             "somtEmitInterface", "somtEmitInterfaceEpilog");
  106.  
  107.         somSelf->somtScanModules("somtEmitModuleProlog",
  108.                          "somtEmitModule", "somtEmitModuleEpilog");
  109.     }
  110.  
  111.     somSelf->somtEmitEpilog();
  112.  
  113.     return (TRUE);
  114. }
  115.