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

  1. :template
  2. /* @(#) somc/gen_c.efc 2.5 9/1/94 19:33:13 [12/24/96 07:39:06] */
  3.  
  4. /*
  5.  *   COMPONENT_NAME: some
  6.  *
  7.  *   ORIGINS: 27
  8.  *
  9.  *
  10.  *   10H9767, 10H9769  (C) COPYRIGHT International Business Machines Corp. 1992,1994
  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>.c
  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>.ih"
  26.  
  27. SOM_Scope boolean  SOMLINK somtGenerateSections(<className> somSelf)
  28. {
  29.     /* <className>Data *somThis = <className>GetData(somSelf); */
  30.     SOMTClassEntryC cls = __get_somtTargetClass(somSelf);
  31.     SOMTTemplateOutputC template = __get_somtTemplate(somSelf);
  32.     <className>MethodDebug("<className>","somtGenerateSections");
  33.  
  34.     /*
  35.      * Setup symbols that are common to the whole file 
  36.      */
  37.     _somtFileSymbols(somSelf);
  38.  
  39.     _somtEmitProlog(somSelf);
  40.  
  41.     if (cls != (SOMTClassEntryC) NULL) {
  42.         _somtScanBases(somSelf,
  43.                        "somtEmitBaseIncludesProlog",
  44.                        "somtEmitBaseIncludes",
  45.                        "somtEmitBaseIncludesEpilog");
  46.  
  47.         _somtEmitMetaInclude(somSelf);
  48.  
  49.         _somtEmitClass(somSelf);
  50.  
  51.         _somtScanBases(somSelf,
  52.                        "somtEmitBaseProlog",
  53.                        "somtEmitBase",
  54.                        "somtEmitBaseEpilog");
  55.  
  56.         _somtEmitMeta(somSelf);
  57.     }
  58.     _somtScanConstants(somSelf, "somtEmitConstantProlog",
  59.                       "somtEmitConstant", "somtEmitConstantEpilog");
  60.  
  61.     _somtScanTypedefs(somSelf, "somtEmitTypedefProlog",
  62.                       "somtEmitTypedef", "somtEmitTypedefEpilog");
  63.  
  64.     _somtScanStructs(somSelf, "somtEmitStructProlog",
  65.                      "somtEmitStruct", "somtEmitStructEpilog");
  66.  
  67.     _somtScanUnions(somSelf, "somtEmitUnionProlog",
  68.                     "somtEmitUnion", "somtEmitUnionEpilog");
  69.  
  70.     _somtScanEnums(somSelf, "somtEmitEnumProlog",
  71.                    "somtEmitEnum", "somtEmitEnumEpilog");
  72.  
  73.     if (cls != (SOMTClassEntryC) NULL) {
  74.         _somtScanAttributes(somSelf, "somtEmitAttributeProlog",
  75.                             "somtEmitAttribute", "somtEmitAttributeEpilog");
  76.  
  77.         _somtScanMethods(somSelf,
  78.                          "somtImplemented",
  79.                          "somtEmitMethodsProlog",
  80.                          "somtEmitMethod",
  81.                          "somtEmitMethodsEpilog",
  82.                          0);
  83.  
  84.         _somtEmitRelease(somSelf);
  85.  
  86.         _somtScanPassthru(somSelf, 1,
  87.                           "somtEmitPassthruProlog",
  88.                           "somtEmitPassthru",
  89.                           "somtEmitPassthruEpilog");
  90.  
  91.         _somtScanPassthru(somSelf, 0,
  92.                           "somtEmitPassthruProlog",
  93.                           "somtEmitPassthru",
  94.                           "somtEmitPassthruEpilog");
  95.  
  96.         _somtScanData(somSelf,
  97.                       "somtEmitDataProlog",
  98.                       "somtEmitData",
  99.                       "somtEmitDataEpilog");
  100.     }
  101.  
  102.     if (__get_somtTargetModule(somSelf) != (SOMTModuleEntryC) NULL) {
  103.  
  104.         _somtScanInterfaces(somSelf, "somtEmitInterfaceProlog",
  105.                             "somtEmitInterface", "somtEmitInterfaceEpilog");
  106.  
  107.         _somtScanModules(somSelf, "somtEmitModuleProlog",
  108.                          "somtEmitModule", "somtEmitModuleEpilog");
  109.     }
  110.  
  111.     _somtEmitEpilog(somSelf);
  112.  
  113.     return (TRUE);
  114. }
  115.