home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / include / scemit.xh < prev    next >
Encoding:
Text File  |  1996-02-22  |  51.0 KB  |  1,725 lines

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: h:\somnt\include\scemit.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: Development
  7.  *     SOM Emitter emitxh.dll: Development
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *   COMPONENT_NAME: some
  13.  * 
  14.  *   ORIGINS: 27
  15.  * 
  16.  * 
  17.  *   10H9767, 10H9769  (C) COPYRIGHT International Business Machines Corp. 1992,1994
  18.  *   All Rights Reserved
  19.  *   Licensed Materials - Property of IBM
  20.  *   US Government Users Restricted Rights - Use, duplication or
  21.  *   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  22.  *  %Z% %I% %W% %G% %U% [%H% %T%]
  23.  * 
  24.  */
  25.  
  26.  
  27. #ifndef SOM_SOMTEmitC_xh
  28. #define SOM_SOMTEmitC_xh
  29.  
  30. class SOMTEmitC;
  31.  
  32. /*
  33.  *  This is the pluggable unit in the SOM emitter framework. An emitter
  34.  *  is constructed by subclassing this class and then running the
  35.  *  master emitter program providing the name of the subclass as one of
  36.  *  its command line arguments.
  37.  *  The concepts of this class are simple:
  38.  * 
  39.  *    Emitters always consist of a set of sections
  40.  *    The sections are in a particular order for any particular
  41.  *    emitter, and the order does not vary with the data processed by
  42.  *    the emitter.
  43.  *    A number of the sections of an emitter are common (maybe with
  44.  *    slight variation) across several (or even most) emitters.
  45.  *    There are a number of constructs that occur in varying numbers,
  46.  *    eg, method declarations, data declarations, and attribute
  47.  *    declarations.
  48.  *  Consequently, this class provides methods for:
  49.  *    Methods for many common sections, including several that may be
  50.  *    useful without overridding in several different emitters
  51.  *    Sequencing through the sections of the emitter
  52.  *    Iterating through the constructs that occur in varying numbers
  53.  */
  54.  
  55. #define SOMTEmitC_MajorVersion 2
  56. #define SOMTEmitC_MinorVersion 1
  57.  
  58. /* C++ SOM defs */
  59. #include <somcls.xh>
  60. #include <somcm.xh>
  61.  
  62. /* C++ parent defs */
  63. #ifndef SOM_SOMObject_xh
  64. #include <somobj.xh>
  65. #endif
  66.  
  67. #ifndef SOMTEmitC_API
  68. #define SOMTEmitC_API
  69. /*
  70.  * -- The Class API
  71.  */
  72.  
  73. /*
  74.  * Start of user-defined types:
  75.  */
  76. class SOMClass;
  77. class SOMObject;
  78. class SOMStringTableC;
  79. class SOMTEntryC;
  80. class SOMTEmitC;
  81. class SOMTMetaClassEntryC;
  82. class SOMTAttributeEntryC;
  83. class SOMTTypedefEntryC;
  84. class SOMTBaseClassEntryC;
  85. class SOMTPassthruEntryC;
  86. class SOMTDataEntryC;
  87. class SOMTMethodEntryC;
  88. class SOMTClassEntryC;
  89. class SOMTModuleEntryC;
  90. class SOMTParameterEntryC;
  91. class SOMTStructEntryC;
  92. class SOMTUnionEntryC;
  93. class SOMTEnumEntryC;
  94. class SOMTConstEntryC;
  95. class SOMTSequenceEntryC;
  96. class SOMTStringEntryC;
  97. class SOMTEnumNameEntryC;
  98. class SOMTCommonEntryC;
  99. class SOMTUserDefinedTypeEntryC;
  100.  
  101. /*
  102.  * End of user-defined types.
  103.  */
  104.  
  105. /*
  106.  * Passthru lines: File: "C.xh", "after"
  107.  */
  108. #include <sctypes.h>
  109. #include <sctmplt.xh>
  110. #include <scclass.xh>
  111. #include <scmeta.xh>
  112. #include <scmethod.xh>
  113. #include <scpass.xh>
  114.     /*
  115.      * These macros provide short-hands for the use of the Scan
  116.      * Methods.
  117.      */
  118.  
  119.     #define SCAN_NOFILTER(scan,method) \
  120.         _##scan(somSelf, #method"Prolog", #method, #method"Epilog")
  121.     #define SCAN_NOFILTER_SN(scan,method,base,newbase) \
  122.         {_somtSetSymbolCopyBoth(_t, #base"PrologSN", #newbase"PrologS"); \
  123.         _somtSetSymbolCopyBoth(_t, #base"SN", #newbase"S"); \
  124.         _somtSetSymbolCopyBoth(_t, #base"EpilogSN", #newbase"EpilogS"); \
  125.         _##scan(somSelf, #method"Prolog", #method, #method"Epilog");}
  126.     #define SCAN_FILTER(scan,filt,method) \
  127.         _##scan(somSelf, #filt, #method"Prolog", #method, #method"Epilog",0)
  128.     #define SCAN_FILTER_SN(scan,filt,method,base,newbase) \
  129.         {_somtSetSymbolCopyBoth(_t, #base"PrologSN", #newbase"PrologS"); \
  130.         _somtSetSymbolCopyBoth(_t, #base"SN", #newbase"S"); \
  131.         _somtSetSymbolCopyBoth(_t, #base"EpilogSN", #newbase"EpilogS"); \
  132.         _##scan(somSelf, #filt, #method"Prolog", #method, #method"Epilog",0);}
  133.  
  134. /* A procedure to create the SOMTEmitC Class */
  135. SOMEXTERN
  136. #if (defined(SOM_Module_scemit_Source) || defined(SOMTEmitC_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_SOMTEmitC))
  137. WIN32_DLLEXPORT
  138. #else
  139. WIN32_DLLIMPORT
  140. #endif
  141. SOMClass * SOMLINK SOMTEmitCNewClass(
  142.         integer4,
  143.         integer4 );
  144.  
  145. /* The API to the SOMTEmitC class object, and the methods it introduces. */
  146. SOMEXTERN struct SOMTEmitCClassDataStructure {
  147.     SOMClass *classObject;
  148.     somMToken _get_somtTemplate;
  149.     somMToken _get_somtTargetFile;
  150.     somMToken _set_somtTargetFile;
  151.     somMToken _get_somtTargetClass;
  152.     somMToken _set_somtTargetClass;
  153.     somMToken _get_somtTargetModule;
  154.     somMToken _set_somtTargetModule;
  155.     somMToken _get_somtTargetType;
  156.     somMToken _set_somtTargetType;
  157.     somMToken somtGenerateSections;
  158.     somMToken somtOpenSymbolsFile;
  159.     somMToken somtSetPredefinedSymbols;
  160.     somMToken somtFileSymbols;
  161.     somMToken somtEmitProlog;
  162.     somMToken somtEmitBaseIncludesProlog;
  163.     somMToken somtEmitBaseIncludes;
  164.     somMToken somtEmitBaseIncludesEpilog;
  165.     somMToken somtEmitMetaInclude;
  166.     somMToken somtEmitClass;
  167.     somMToken somtEmitMeta;
  168.     somMToken somtEmitBaseProlog;
  169.     somMToken somtEmitBase;
  170.     somMToken somtEmitBaseEpilog;
  171.     somMToken somtEmitPassthruProlog;
  172.     somMToken somtEmitPassthru;
  173.     somMToken somtEmitPassthruEpilog;
  174.     somMToken somtEmitRelease;
  175.     somMToken somtEmitDataProlog;
  176.     somMToken somtEmitData;
  177.     somMToken somtEmitDataEpilog;
  178.     somMToken somtEmitMethodsProlog;
  179.     somMToken somtEmitMethods;
  180.     somMToken somtEmitMethodsEpilog;
  181.     somMToken somtEmitMethod;
  182.     somMToken somtEmitEpilog;
  183.     somMToken somtScanBases;
  184.     somMToken somtScanConstants;
  185.     somMToken somtCheckVisibility;
  186.     somMToken somtNew;
  187.     somMToken somtImplemented;
  188.     somMToken somtOverridden;
  189.     somMToken somtInherited;
  190.     somMToken somtAllVisible;
  191.     somMToken somtAll;
  192.     somMToken somtNewNoProc;
  193.     somMToken somtPrivOrPub;
  194.     somMToken somtNewProc;
  195.     somMToken somtLink;
  196.     somMToken somtVA;
  197.     somMToken somtScanMethods;
  198.     somMToken somtScanData;
  199.     somMToken somtScanPassthru;
  200.     somMToken somtEmitFullPassthru;
  201.     somMToken somtScanDataF;
  202.     somMToken somtScanBasesF;
  203.     somMToken _set_somtTemplate;
  204.     somMToken _set_somtEmitterName;
  205.     somMToken _get_somtEmitterName;
  206.     somMToken somtEmitAttributeProlog;
  207.     somMToken somtEmitAttribute;
  208.     somMToken somtEmitAttributeEpilog;
  209.     somMToken somtEmitConstantProlog;
  210.     somMToken somtEmitConstant;
  211.     somMToken somtEmitConstantEpilog;
  212.     somMToken somtEmitTypedefProlog;
  213.     somMToken somtEmitTypedef;
  214.     somMToken somtEmitTypedefEpilog;
  215.     somMToken somtEmitStructProlog;
  216.     somMToken somtEmitStruct;
  217.     somMToken somtEmitStructEpilog;
  218.     somMToken somtEmitUnionProlog;
  219.     somMToken somtEmitUnion;
  220.     somMToken somtEmitUnionEpilog;
  221.     somMToken somtEmitEnumProlog;
  222.     somMToken somtEmitEnum;
  223.     somMToken somtEmitEnumEpilog;
  224.     somMToken somtEmitInterfaceProlog;
  225.     somMToken somtEmitInterface;
  226.     somMToken somtEmitInterfaceEpilog;
  227.     somMToken somtEmitModuleProlog;
  228.     somMToken somtEmitModule;
  229.     somMToken somtEmitModuleEpilog;
  230.     somMToken somtScanAttributes;
  231.     somMToken somtScanTypedefs;
  232.     somMToken somtScanStructs;
  233.     somMToken somtScanUnions;
  234.     somMToken somtScanEnums;
  235.     somMToken somtScanInterfaces;
  236.     somMToken somtScanModules;
  237.     somMToken somtGetGlobalModifierValue;
  238.     somMToken somtGetFirstGlobalDefinition;
  239.     somMToken somtGetNextGlobalDefinition;
  240. }
  241. #if !(defined(SOM_Module_scemit_Source) || defined(SOMTEmitC_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_SOMTEmitC))
  242. WIN32_DLLIMPORT
  243. #elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
  244. WIN32_DLLEXPORT
  245. #endif
  246. SOMDLINK SOMTEmitCClassData;
  247. #define _SOMTEmitC SOMTEmitCClassData.classObject
  248.  
  249. /* The API to parentMtabs for SOMTEmitC, and the instance data it introduces. */
  250. SOMEXTERN struct SOMTEmitCCClassDataStructure {
  251.     somMethodTabs parentMtab;
  252.     somDToken              instanceDataToken;
  253. }
  254. #if !(defined(SOM_Module_scemit_Source) || defined(SOMTEmitC_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_SOMTEmitC))
  255. WIN32_DLLIMPORT
  256. #elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
  257. WIN32_DLLEXPORT
  258. #endif
  259. SOMDLINK SOMTEmitCCClassData;
  260.  
  261. /*
  262.  * -- Typedefs for SOMTEmitC Method Procedures
  263.  */
  264. extern "C" {
  265. typedef SOMTTemplateOutputC*   SOMLINK somTP_SOMTEmitC__get_somtTemplate(SOMTEmitC *somSelf);
  266. typedef somTP_SOMTEmitC__get_somtTemplate *somTD_SOMTEmitC__get_somtTemplate;
  267. typedef void   SOMLINK somTP_SOMTEmitC__set_somtTemplate(SOMTEmitC *somSelf,
  268.         SOMTTemplateOutputC* somtTemplate);
  269. typedef somTP_SOMTEmitC__set_somtTemplate *somTD_SOMTEmitC__set_somtTemplate;
  270. typedef FILE*   SOMLINK somTP_SOMTEmitC__get_somtTargetFile(SOMTEmitC *somSelf);
  271. typedef somTP_SOMTEmitC__get_somtTargetFile *somTD_SOMTEmitC__get_somtTargetFile;
  272. typedef void   SOMLINK somTP_SOMTEmitC__set_somtTargetFile(SOMTEmitC *somSelf,
  273.         FILE* somtTargetFile);
  274. typedef somTP_SOMTEmitC__set_somtTargetFile *somTD_SOMTEmitC__set_somtTargetFile;
  275. typedef SOMTClassEntryC*   SOMLINK somTP_SOMTEmitC__get_somtTargetClass(SOMTEmitC *somSelf);
  276. typedef somTP_SOMTEmitC__get_somtTargetClass *somTD_SOMTEmitC__get_somtTargetClass;
  277. typedef void   SOMLINK somTP_SOMTEmitC__set_somtTargetClass(SOMTEmitC *somSelf,
  278.         SOMTClassEntryC* somtTargetClass);
  279. typedef somTP_SOMTEmitC__set_somtTargetClass *somTD_SOMTEmitC__set_somtTargetClass;
  280. typedef SOMTModuleEntryC*   SOMLINK somTP_SOMTEmitC__get_somtTargetModule(SOMTEmitC *somSelf);
  281. typedef somTP_SOMTEmitC__get_somtTargetModule *somTD_SOMTEmitC__get_somtTargetModule;
  282. typedef void   SOMLINK somTP_SOMTEmitC__set_somtTargetModule(SOMTEmitC *somSelf,
  283.         SOMTModuleEntryC* somtTargetModule);
  284. typedef somTP_SOMTEmitC__set_somtTargetModule *somTD_SOMTEmitC__set_somtTargetModule;
  285. typedef SOMTTargetTypeT   SOMLINK somTP_SOMTEmitC__get_somtTargetType(SOMTEmitC *somSelf);
  286. typedef somTP_SOMTEmitC__get_somtTargetType *somTD_SOMTEmitC__get_somtTargetType;
  287. typedef void   SOMLINK somTP_SOMTEmitC__set_somtTargetType(SOMTEmitC *somSelf,
  288.         SOMTTargetTypeT somtTargetType);
  289. typedef somTP_SOMTEmitC__set_somtTargetType *somTD_SOMTEmitC__set_somtTargetType;
  290. typedef string   SOMLINK somTP_SOMTEmitC__get_somtEmitterName(SOMTEmitC *somSelf);
  291. typedef somTP_SOMTEmitC__get_somtEmitterName *somTD_SOMTEmitC__get_somtEmitterName;
  292. typedef void   SOMLINK somTP_SOMTEmitC__set_somtEmitterName(SOMTEmitC *somSelf,
  293.         string somtEmitterName);
  294. typedef somTP_SOMTEmitC__set_somtEmitterName *somTD_SOMTEmitC__set_somtEmitterName;
  295. typedef boolean   SOMLINK somTP_SOMTEmitC_somtGenerateSections(SOMTEmitC *somSelf);
  296. typedef somTP_SOMTEmitC_somtGenerateSections *somTD_SOMTEmitC_somtGenerateSections;
  297. typedef FILE*   SOMLINK somTP_SOMTEmitC_somtOpenSymbolsFile(SOMTEmitC *somSelf,
  298.         string file,
  299.         string mode);
  300. typedef somTP_SOMTEmitC_somtOpenSymbolsFile *somTD_SOMTEmitC_somtOpenSymbolsFile;
  301. typedef void   SOMLINK somTP_SOMTEmitC_somtSetPredefinedSymbols(SOMTEmitC *somSelf);
  302. typedef somTP_SOMTEmitC_somtSetPredefinedSymbols *somTD_SOMTEmitC_somtSetPredefinedSymbols;
  303. typedef void   SOMLINK somTP_SOMTEmitC_somtFileSymbols(SOMTEmitC *somSelf);
  304. typedef somTP_SOMTEmitC_somtFileSymbols *somTD_SOMTEmitC_somtFileSymbols;
  305. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitProlog(SOMTEmitC *somSelf);
  306. typedef somTP_SOMTEmitC_somtEmitProlog *somTD_SOMTEmitC_somtEmitProlog;
  307. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitBaseIncludesProlog(SOMTEmitC *somSelf);
  308. typedef somTP_SOMTEmitC_somtEmitBaseIncludesProlog *somTD_SOMTEmitC_somtEmitBaseIncludesProlog;
  309. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitBaseIncludes(SOMTEmitC *somSelf,
  310.         SOMTBaseClassEntryC* base);
  311. typedef somTP_SOMTEmitC_somtEmitBaseIncludes *somTD_SOMTEmitC_somtEmitBaseIncludes;
  312. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitBaseIncludesEpilog(SOMTEmitC *somSelf);
  313. typedef somTP_SOMTEmitC_somtEmitBaseIncludesEpilog *somTD_SOMTEmitC_somtEmitBaseIncludesEpilog;
  314. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitMetaInclude(SOMTEmitC *somSelf);
  315. typedef somTP_SOMTEmitC_somtEmitMetaInclude *somTD_SOMTEmitC_somtEmitMetaInclude;
  316. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitClass(SOMTEmitC *somSelf);
  317. typedef somTP_SOMTEmitC_somtEmitClass *somTD_SOMTEmitC_somtEmitClass;
  318. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitMeta(SOMTEmitC *somSelf);
  319. typedef somTP_SOMTEmitC_somtEmitMeta *somTD_SOMTEmitC_somtEmitMeta;
  320. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitBaseProlog(SOMTEmitC *somSelf);
  321. typedef somTP_SOMTEmitC_somtEmitBaseProlog *somTD_SOMTEmitC_somtEmitBaseProlog;
  322. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitBase(SOMTEmitC *somSelf,
  323.         SOMTBaseClassEntryC* base);
  324. typedef somTP_SOMTEmitC_somtEmitBase *somTD_SOMTEmitC_somtEmitBase;
  325. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitBaseEpilog(SOMTEmitC *somSelf);
  326. typedef somTP_SOMTEmitC_somtEmitBaseEpilog *somTD_SOMTEmitC_somtEmitBaseEpilog;
  327. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitPassthruProlog(SOMTEmitC *somSelf);
  328. typedef somTP_SOMTEmitC_somtEmitPassthruProlog *somTD_SOMTEmitC_somtEmitPassthruProlog;
  329. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitPassthru(SOMTEmitC *somSelf,
  330.         SOMTPassthruEntryC* entry);
  331. typedef somTP_SOMTEmitC_somtEmitPassthru *somTD_SOMTEmitC_somtEmitPassthru;
  332. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitPassthruEpilog(SOMTEmitC *somSelf);
  333. typedef somTP_SOMTEmitC_somtEmitPassthruEpilog *somTD_SOMTEmitC_somtEmitPassthruEpilog;
  334. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitRelease(SOMTEmitC *somSelf);
  335. typedef somTP_SOMTEmitC_somtEmitRelease *somTD_SOMTEmitC_somtEmitRelease;
  336. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitDataProlog(SOMTEmitC *somSelf);
  337. typedef somTP_SOMTEmitC_somtEmitDataProlog *somTD_SOMTEmitC_somtEmitDataProlog;
  338. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitData(SOMTEmitC *somSelf,
  339.         SOMTDataEntryC* entry);
  340. typedef somTP_SOMTEmitC_somtEmitData *somTD_SOMTEmitC_somtEmitData;
  341. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitDataEpilog(SOMTEmitC *somSelf);
  342. typedef somTP_SOMTEmitC_somtEmitDataEpilog *somTD_SOMTEmitC_somtEmitDataEpilog;
  343. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitAttributeProlog(SOMTEmitC *somSelf);
  344. typedef somTP_SOMTEmitC_somtEmitAttributeProlog *somTD_SOMTEmitC_somtEmitAttributeProlog;
  345. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitAttribute(SOMTEmitC *somSelf,
  346.         SOMTAttributeEntryC* att);
  347. typedef somTP_SOMTEmitC_somtEmitAttribute *somTD_SOMTEmitC_somtEmitAttribute;
  348. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitAttributeEpilog(SOMTEmitC *somSelf);
  349. typedef somTP_SOMTEmitC_somtEmitAttributeEpilog *somTD_SOMTEmitC_somtEmitAttributeEpilog;
  350. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitConstantProlog(SOMTEmitC *somSelf);
  351. typedef somTP_SOMTEmitC_somtEmitConstantProlog *somTD_SOMTEmitC_somtEmitConstantProlog;
  352. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitConstant(SOMTEmitC *somSelf,
  353.         SOMTConstEntryC* con);
  354. typedef somTP_SOMTEmitC_somtEmitConstant *somTD_SOMTEmitC_somtEmitConstant;
  355. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitConstantEpilog(SOMTEmitC *somSelf);
  356. typedef somTP_SOMTEmitC_somtEmitConstantEpilog *somTD_SOMTEmitC_somtEmitConstantEpilog;
  357. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitTypedefProlog(SOMTEmitC *somSelf);
  358. typedef somTP_SOMTEmitC_somtEmitTypedefProlog *somTD_SOMTEmitC_somtEmitTypedefProlog;
  359. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitTypedef(SOMTEmitC *somSelf,
  360.         SOMTTypedefEntryC* td);
  361. typedef somTP_SOMTEmitC_somtEmitTypedef *somTD_SOMTEmitC_somtEmitTypedef;
  362. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitTypedefEpilog(SOMTEmitC *somSelf);
  363. typedef somTP_SOMTEmitC_somtEmitTypedefEpilog *somTD_SOMTEmitC_somtEmitTypedefEpilog;
  364. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitStructProlog(SOMTEmitC *somSelf);
  365. typedef somTP_SOMTEmitC_somtEmitStructProlog *somTD_SOMTEmitC_somtEmitStructProlog;
  366. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitStruct(SOMTEmitC *somSelf,
  367.         SOMTStructEntryC* struc);
  368. typedef somTP_SOMTEmitC_somtEmitStruct *somTD_SOMTEmitC_somtEmitStruct;
  369. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitStructEpilog(SOMTEmitC *somSelf);
  370. typedef somTP_SOMTEmitC_somtEmitStructEpilog *somTD_SOMTEmitC_somtEmitStructEpilog;
  371. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitUnionProlog(SOMTEmitC *somSelf);
  372. typedef somTP_SOMTEmitC_somtEmitUnionProlog *somTD_SOMTEmitC_somtEmitUnionProlog;
  373. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitUnion(SOMTEmitC *somSelf,
  374.         SOMTUnionEntryC* un);
  375. typedef somTP_SOMTEmitC_somtEmitUnion *somTD_SOMTEmitC_somtEmitUnion;
  376. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitUnionEpilog(SOMTEmitC *somSelf);
  377. typedef somTP_SOMTEmitC_somtEmitUnionEpilog *somTD_SOMTEmitC_somtEmitUnionEpilog;
  378. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitEnumProlog(SOMTEmitC *somSelf);
  379. typedef somTP_SOMTEmitC_somtEmitEnumProlog *somTD_SOMTEmitC_somtEmitEnumProlog;
  380. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitEnum(SOMTEmitC *somSelf,
  381.         SOMTEnumEntryC* en);
  382. typedef somTP_SOMTEmitC_somtEmitEnum *somTD_SOMTEmitC_somtEmitEnum;
  383. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitEnumEpilog(SOMTEmitC *somSelf);
  384. typedef somTP_SOMTEmitC_somtEmitEnumEpilog *somTD_SOMTEmitC_somtEmitEnumEpilog;
  385. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitInterfaceProlog(SOMTEmitC *somSelf);
  386. typedef somTP_SOMTEmitC_somtEmitInterfaceProlog *somTD_SOMTEmitC_somtEmitInterfaceProlog;
  387. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitInterface(SOMTEmitC *somSelf,
  388.         SOMTClassEntryC* intfc);
  389. typedef somTP_SOMTEmitC_somtEmitInterface *somTD_SOMTEmitC_somtEmitInterface;
  390. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitInterfaceEpilog(SOMTEmitC *somSelf);
  391. typedef somTP_SOMTEmitC_somtEmitInterfaceEpilog *somTD_SOMTEmitC_somtEmitInterfaceEpilog;
  392. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitModuleProlog(SOMTEmitC *somSelf);
  393. typedef somTP_SOMTEmitC_somtEmitModuleProlog *somTD_SOMTEmitC_somtEmitModuleProlog;
  394. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitModule(SOMTEmitC *somSelf,
  395.         SOMTModuleEntryC* mod);
  396. typedef somTP_SOMTEmitC_somtEmitModule *somTD_SOMTEmitC_somtEmitModule;
  397. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitModuleEpilog(SOMTEmitC *somSelf);
  398. typedef somTP_SOMTEmitC_somtEmitModuleEpilog *somTD_SOMTEmitC_somtEmitModuleEpilog;
  399. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitMethodsProlog(SOMTEmitC *somSelf);
  400. typedef somTP_SOMTEmitC_somtEmitMethodsProlog *somTD_SOMTEmitC_somtEmitMethodsProlog;
  401. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitMethods(SOMTEmitC *somSelf,
  402.         SOMTMethodEntryC* method);
  403. typedef somTP_SOMTEmitC_somtEmitMethods *somTD_SOMTEmitC_somtEmitMethods;
  404. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitMethodsEpilog(SOMTEmitC *somSelf);
  405. typedef somTP_SOMTEmitC_somtEmitMethodsEpilog *somTD_SOMTEmitC_somtEmitMethodsEpilog;
  406. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitMethod(SOMTEmitC *somSelf,
  407.         SOMTMethodEntryC* entry);
  408. typedef somTP_SOMTEmitC_somtEmitMethod *somTD_SOMTEmitC_somtEmitMethod;
  409. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitEpilog(SOMTEmitC *somSelf);
  410. typedef somTP_SOMTEmitC_somtEmitEpilog *somTD_SOMTEmitC_somtEmitEpilog;
  411. typedef boolean   SOMLINK somTP_SOMTEmitC_somtScanBases(SOMTEmitC *somSelf,
  412.         string prolog,
  413.         string each,
  414.         string epilog);
  415. typedef somTP_SOMTEmitC_somtScanBases *somTD_SOMTEmitC_somtScanBases;
  416. typedef boolean   SOMLINK somTP_SOMTEmitC_somtCheckVisibility(SOMTEmitC *somSelf,
  417.         SOMTMethodEntryC* entry);
  418. typedef somTP_SOMTEmitC_somtCheckVisibility *somTD_SOMTEmitC_somtCheckVisibility;
  419. typedef boolean   SOMLINK somTP_SOMTEmitC_somtNew(SOMTEmitC *somSelf,
  420.         SOMTMethodEntryC* entry);
  421. typedef somTP_SOMTEmitC_somtNew *somTD_SOMTEmitC_somtNew;
  422. typedef boolean   SOMLINK somTP_SOMTEmitC_somtImplemented(SOMTEmitC *somSelf,
  423.         SOMTMethodEntryC* entry);
  424. typedef somTP_SOMTEmitC_somtImplemented *somTD_SOMTEmitC_somtImplemented;
  425. typedef boolean   SOMLINK somTP_SOMTEmitC_somtOverridden(SOMTEmitC *somSelf,
  426.         SOMTMethodEntryC* entry);
  427. typedef somTP_SOMTEmitC_somtOverridden *somTD_SOMTEmitC_somtOverridden;
  428. typedef boolean   SOMLINK somTP_SOMTEmitC_somtInherited(SOMTEmitC *somSelf,
  429.         SOMTMethodEntryC* entry);
  430. typedef somTP_SOMTEmitC_somtInherited *somTD_SOMTEmitC_somtInherited;
  431. typedef boolean   SOMLINK somTP_SOMTEmitC_somtAllVisible(SOMTEmitC *somSelf,
  432.         SOMTMethodEntryC* entry);
  433. typedef somTP_SOMTEmitC_somtAllVisible *somTD_SOMTEmitC_somtAllVisible;
  434. typedef boolean   SOMLINK somTP_SOMTEmitC_somtAll(SOMTEmitC *somSelf,
  435.         SOMTMethodEntryC* entry);
  436. typedef somTP_SOMTEmitC_somtAll *somTD_SOMTEmitC_somtAll;
  437. typedef boolean   SOMLINK somTP_SOMTEmitC_somtNewNoProc(SOMTEmitC *somSelf,
  438.         SOMTEntryC* entry);
  439. typedef somTP_SOMTEmitC_somtNewNoProc *somTD_SOMTEmitC_somtNewNoProc;
  440. typedef boolean   SOMLINK somTP_SOMTEmitC_somtPrivOrPub(SOMTEmitC *somSelf,
  441.         SOMTEntryC* entry);
  442. typedef somTP_SOMTEmitC_somtPrivOrPub *somTD_SOMTEmitC_somtPrivOrPub;
  443. typedef boolean   SOMLINK somTP_SOMTEmitC_somtNewProc(SOMTEmitC *somSelf,
  444.         SOMTEntryC* entry);
  445. typedef somTP_SOMTEmitC_somtNewProc *somTD_SOMTEmitC_somtNewProc;
  446. typedef boolean   SOMLINK somTP_SOMTEmitC_somtLink(SOMTEmitC *somSelf,
  447.         SOMTEntryC* entry);
  448. typedef somTP_SOMTEmitC_somtLink *somTD_SOMTEmitC_somtLink;
  449. typedef boolean   SOMLINK somTP_SOMTEmitC_somtVA(SOMTEmitC *somSelf,
  450.         SOMTEntryC* entry);
  451. typedef somTP_SOMTEmitC_somtVA *somTD_SOMTEmitC_somtVA;
  452. typedef boolean   SOMLINK somTP_SOMTEmitC_somtScanMethods(SOMTEmitC *somSelf,
  453.         string filter,
  454.         string prolog,
  455.         string each,
  456.         string epilog,
  457.         boolean forceProlog);
  458. typedef somTP_SOMTEmitC_somtScanMethods *somTD_SOMTEmitC_somtScanMethods;
  459. typedef boolean   SOMLINK somTP_SOMTEmitC_somtScanConstants(SOMTEmitC *somSelf,
  460.         string prolog,
  461.         string each,
  462.         string epilog);
  463. typedef somTP_SOMTEmitC_somtScanConstants *somTD_SOMTEmitC_somtScanConstants;
  464. typedef boolean   SOMLINK somTP_SOMTEmitC_somtScanTypedefs(SOMTEmitC *somSelf,
  465.         string prolog,
  466.         string each,
  467.         string epilog);
  468. typedef somTP_SOMTEmitC_somtScanTypedefs *somTD_SOMTEmitC_somtScanTypedefs;
  469. typedef boolean   SOMLINK somTP_SOMTEmitC_somtScanStructs(SOMTEmitC *somSelf,
  470.         string prolog,
  471.         string each,
  472.         string epilog);
  473. typedef somTP_SOMTEmitC_somtScanStructs *somTD_SOMTEmitC_somtScanStructs;
  474. typedef boolean   SOMLINK somTP_SOMTEmitC_somtScanUnions(SOMTEmitC *somSelf,
  475.         string prolog,
  476.         string each,
  477.         string epilog);
  478. typedef somTP_SOMTEmitC_somtScanUnions *somTD_SOMTEmitC_somtScanUnions;
  479. typedef boolean   SOMLINK somTP_SOMTEmitC_somtScanEnums(SOMTEmitC *somSelf,
  480.         string prolog,
  481.         string each,
  482.         string epilog);
  483. typedef somTP_SOMTEmitC_somtScanEnums *somTD_SOMTEmitC_somtScanEnums;
  484. typedef boolean   SOMLINK somTP_SOMTEmitC_somtScanData(SOMTEmitC *somSelf,
  485.         string prolog,
  486.         string each,
  487.         string epilog);
  488. typedef somTP_SOMTEmitC_somtScanData *somTD_SOMTEmitC_somtScanData;
  489. typedef boolean   SOMLINK somTP_SOMTEmitC_somtScanAttributes(SOMTEmitC *somSelf,
  490.         string prolog,
  491.         string each,
  492.         string epilog);
  493. typedef somTP_SOMTEmitC_somtScanAttributes *somTD_SOMTEmitC_somtScanAttributes;
  494. typedef boolean   SOMLINK somTP_SOMTEmitC_somtScanInterfaces(SOMTEmitC *somSelf,
  495.         string prolog,
  496.         string each,
  497.         string epilog);
  498. typedef somTP_SOMTEmitC_somtScanInterfaces *somTD_SOMTEmitC_somtScanInterfaces;
  499. typedef boolean   SOMLINK somTP_SOMTEmitC_somtScanModules(SOMTEmitC *somSelf,
  500.         string prolog,
  501.         string each,
  502.         string epilog);
  503. typedef somTP_SOMTEmitC_somtScanModules *somTD_SOMTEmitC_somtScanModules;
  504. typedef boolean   SOMLINK somTP_SOMTEmitC_somtScanPassthru(SOMTEmitC *somSelf,
  505.         boolean before,
  506.         string prolog,
  507.         string each,
  508.         string epilog);
  509. typedef somTP_SOMTEmitC_somtScanPassthru *somTD_SOMTEmitC_somtScanPassthru;
  510. typedef void   SOMLINK somTP_SOMTEmitC_somtEmitFullPassthru(SOMTEmitC *somSelf,
  511.         boolean before,
  512.         string language);
  513. typedef somTP_SOMTEmitC_somtEmitFullPassthru *somTD_SOMTEmitC_somtEmitFullPassthru;
  514. typedef boolean   SOMLINK somTP_SOMTEmitC_somtScanDataF(SOMTEmitC *somSelf,
  515.         string filter,
  516.         string prolog,
  517.         string each,
  518.         string epilog,
  519.         boolean forceProlog);
  520. typedef somTP_SOMTEmitC_somtScanDataF *somTD_SOMTEmitC_somtScanDataF;
  521. typedef boolean   SOMLINK somTP_SOMTEmitC_somtScanBasesF(SOMTEmitC *somSelf,
  522.         string filter,
  523.         string prolog,
  524.         string each,
  525.         string epilog,
  526.         boolean forceProlog);
  527. typedef somTP_SOMTEmitC_somtScanBasesF *somTD_SOMTEmitC_somtScanBasesF;
  528. typedef string   SOMLINK somTP_SOMTEmitC_somtGetGlobalModifierValue(SOMTEmitC *somSelf,
  529.         string modifierName);
  530. typedef somTP_SOMTEmitC_somtGetGlobalModifierValue *somTD_SOMTEmitC_somtGetGlobalModifierValue;
  531. typedef SOMTEntryC*   SOMLINK somTP_SOMTEmitC_somtGetFirstGlobalDefinition(SOMTEmitC *somSelf);
  532. typedef somTP_SOMTEmitC_somtGetFirstGlobalDefinition *somTD_SOMTEmitC_somtGetFirstGlobalDefinition;
  533. typedef SOMTEntryC*   SOMLINK somTP_SOMTEmitC_somtGetNextGlobalDefinition(SOMTEmitC *somSelf);
  534. typedef somTP_SOMTEmitC_somtGetNextGlobalDefinition *somTD_SOMTEmitC_somtGetNextGlobalDefinition;
  535.  
  536. /*
  537.  * -- Typedefs for Reintroduced Wrapper Methods
  538.  */
  539. typedef void   SOMLINK somTP_SOMTEmitC_somDefaultInit(SOMTEmitC *somSelf,
  540.         somInitCtrl* ctrl);
  541. typedef somTP_SOMTEmitC_somDefaultInit *somTD_SOMTEmitC_somDefaultInit;
  542. typedef void   SOMLINK somTP_SOMTEmitC_somDestruct(SOMTEmitC *somSelf,
  543.         octet doFree,
  544.         somDestructCtrl* ctrl);
  545. typedef somTP_SOMTEmitC_somDestruct *somTD_SOMTEmitC_somDestruct;
  546. typedef void   SOMLINK somTP_SOMTEmitC_somDefaultCopyInit(SOMTEmitC *somSelf,
  547.         somInitCtrl* ctrl,
  548.         SOMObject* fromObj);
  549. typedef somTP_SOMTEmitC_somDefaultCopyInit *somTD_SOMTEmitC_somDefaultCopyInit;
  550. typedef SOMTEmitC*   SOMLINK somTP_SOMTEmitC_somDefaultAssign(SOMTEmitC *somSelf,
  551.         somAssignCtrl* ctrl,
  552.         SOMObject* fromObj);
  553. typedef somTP_SOMTEmitC_somDefaultAssign *somTD_SOMTEmitC_somDefaultAssign;
  554. typedef void   SOMLINK somTP_SOMTEmitC_somDefaultConstCopyInit(SOMTEmitC *somSelf,
  555.         somInitCtrl* ctrl,
  556.         SOMObject* fromObj);
  557. typedef somTP_SOMTEmitC_somDefaultConstCopyInit *somTD_SOMTEmitC_somDefaultConstCopyInit;
  558. typedef void   SOMLINK somTP_SOMTEmitC_somDefaultVCopyInit(SOMTEmitC *somSelf,
  559.         somInitCtrl* ctrl,
  560.         SOMObject* fromObj);
  561. typedef somTP_SOMTEmitC_somDefaultVCopyInit *somTD_SOMTEmitC_somDefaultVCopyInit;
  562. typedef void   SOMLINK somTP_SOMTEmitC_somDefaultConstVCopyInit(SOMTEmitC *somSelf,
  563.         somInitCtrl* ctrl,
  564.         SOMObject* fromObj);
  565. typedef somTP_SOMTEmitC_somDefaultConstVCopyInit *somTD_SOMTEmitC_somDefaultConstVCopyInit;
  566. typedef SOMTEmitC*   SOMLINK somTP_SOMTEmitC_somDefaultConstAssign(SOMTEmitC *somSelf,
  567.         somAssignCtrl* ctrl,
  568.         SOMObject* fromObj);
  569. typedef somTP_SOMTEmitC_somDefaultConstAssign *somTD_SOMTEmitC_somDefaultConstAssign;
  570. typedef SOMTEmitC*   SOMLINK somTP_SOMTEmitC_somDefaultVAssign(SOMTEmitC *somSelf,
  571.         somAssignCtrl* ctrl,
  572.         SOMObject* fromObj);
  573. typedef somTP_SOMTEmitC_somDefaultVAssign *somTD_SOMTEmitC_somDefaultVAssign;
  574. typedef SOMTEmitC*   SOMLINK somTP_SOMTEmitC_somDefaultConstVAssign(SOMTEmitC *somSelf,
  575.         somAssignCtrl* ctrl,
  576.         SOMObject* fromObj);
  577. typedef somTP_SOMTEmitC_somDefaultConstVAssign *somTD_SOMTEmitC_somDefaultConstVAssign;
  578. typedef void   SOMLINK somTP_SOMTEmitC_somInit(SOMTEmitC *somSelf);
  579. typedef somTP_SOMTEmitC_somInit *somTD_SOMTEmitC_somInit;
  580. typedef void   SOMLINK somTP_SOMTEmitC_somFree(SOMTEmitC *somSelf);
  581. typedef somTP_SOMTEmitC_somFree *somTD_SOMTEmitC_somFree;
  582. typedef void   SOMLINK somTP_SOMTEmitC_somUninit(SOMTEmitC *somSelf);
  583. typedef somTP_SOMTEmitC_somUninit *somTD_SOMTEmitC_somUninit;
  584. typedef SOMClass*   SOMLINK somTP_SOMTEmitC_somGetClass(SOMTEmitC *somSelf);
  585. typedef somTP_SOMTEmitC_somGetClass *somTD_SOMTEmitC_somGetClass;
  586. typedef string   SOMLINK somTP_SOMTEmitC_somGetClassName(SOMTEmitC *somSelf);
  587. typedef somTP_SOMTEmitC_somGetClassName *somTD_SOMTEmitC_somGetClassName;
  588. typedef long   SOMLINK somTP_SOMTEmitC_somGetSize(SOMTEmitC *somSelf);
  589. typedef somTP_SOMTEmitC_somGetSize *somTD_SOMTEmitC_somGetSize;
  590. typedef boolean   SOMLINK somTP_SOMTEmitC_somIsA(SOMTEmitC *somSelf,
  591.         SOMClass* aClassObj);
  592. typedef somTP_SOMTEmitC_somIsA *somTD_SOMTEmitC_somIsA;
  593. typedef boolean   SOMLINK somTP_SOMTEmitC_somIsInstanceOf(SOMTEmitC *somSelf,
  594.         SOMClass* aClassObj);
  595. typedef somTP_SOMTEmitC_somIsInstanceOf *somTD_SOMTEmitC_somIsInstanceOf;
  596. typedef boolean   SOMLINK somTP_SOMTEmitC_somRespondsTo(SOMTEmitC *somSelf,
  597.         somId mId);
  598. typedef somTP_SOMTEmitC_somRespondsTo *somTD_SOMTEmitC_somRespondsTo;
  599. typedef boolean   SOMLINK somTP_SOMTEmitC_somDispatch(SOMTEmitC *somSelf,
  600.         somToken* retValue,
  601.         somId methodId,
  602.         va_list ap);
  603. typedef somTP_SOMTEmitC_somDispatch *somTD_SOMTEmitC_somDispatch;
  604. typedef boolean   SOMLINK somTP_SOMTEmitC_somClassDispatch(SOMTEmitC *somSelf,
  605.         SOMClass* clsObj,
  606.         somToken* retValue,
  607.         somId methodId,
  608.         va_list ap);
  609. typedef somTP_SOMTEmitC_somClassDispatch *somTD_SOMTEmitC_somClassDispatch;
  610. typedef boolean   SOMLINK somTP_SOMTEmitC_somCastObj(SOMTEmitC *somSelf,
  611.         SOMClass* cls);
  612. typedef somTP_SOMTEmitC_somCastObj *somTD_SOMTEmitC_somCastObj;
  613. typedef boolean   SOMLINK somTP_SOMTEmitC_somResetObj(SOMTEmitC *somSelf);
  614. typedef somTP_SOMTEmitC_somResetObj *somTD_SOMTEmitC_somResetObj;
  615. typedef SOMObject*   SOMLINK somTP_SOMTEmitC_somPrintSelf(SOMTEmitC *somSelf);
  616. typedef somTP_SOMTEmitC_somPrintSelf *somTD_SOMTEmitC_somPrintSelf;
  617. typedef void   SOMLINK somTP_SOMTEmitC_somDumpSelf(SOMTEmitC *somSelf,
  618.         long level);
  619. typedef somTP_SOMTEmitC_somDumpSelf *somTD_SOMTEmitC_somDumpSelf;
  620. typedef void   SOMLINK somTP_SOMTEmitC_somDumpSelfInt(SOMTEmitC *somSelf,
  621.         long level);
  622. typedef somTP_SOMTEmitC_somDumpSelfInt *somTD_SOMTEmitC_somDumpSelfInt;
  623. }
  624.  
  625. #endif /* SOMTEmitC_API */
  626.  
  627.  
  628. /*
  629.  * -- This emitter believes that method thunks are unavailable,
  630.  * -- so somResolve will be called.
  631.  */
  632. #undef somresolve_
  633. #define somresolve_(obj,mToken) (somResolve(obj,mToken))
  634.  
  635. /*
  636.  * -- The C++ Wrapper Class for SOMTEmitC
  637.  */
  638. class SOMTEmitC : public SOMObject
  639. {
  640. public:
  641.  
  642. // SOMTEmitC::new creates the class object if necessary, and then uses somNewNoInit
  643. // to allocate memory and create the object. Initialization is in ctors.
  644. void *operator new(size_t)
  645. {
  646.    if (!_SOMTEmitC) SOMTEmitCNewClass(SOMTEmitC_MajorVersion,SOMTEmitC_MinorVersion);
  647.    return (void*)
  648.       SOM_Resolve(_SOMTEmitC,SOMClass,somNewNoInit)
  649.          ((SOMClass *)((void*)_SOMTEmitC));
  650. }
  651.  
  652. // SOMTEmitC::delete uses somDestruct.
  653. void operator delete(void * obj)
  654. {
  655.    if (obj && *(void**)obj) {
  656.       SOM_Resolve(obj,SOMObject,somDestruct)
  657.          ((SOMObject*)obj, 1, 0);
  658.    }
  659. }
  660.  
  661. SOMTEmitC()
  662. {
  663.    if (*(void**)this != 
  664.        ((somParentMtabStructPtr)
  665.         (SOMTEmitCCClassData.parentMtab))->mtab)
  666.       return;
  667.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  668. }
  669.  
  670. SOMTEmitC(SOMTEmitC* fromObj)
  671. {
  672.    if (*(void**)this != 
  673.        ((somParentMtabStructPtr)
  674.         (SOMTEmitCCClassData.parentMtab))->mtab)
  675.       return;
  676.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  677. }
  678.  
  679. SOMTEmitC(const SOMTEmitC* fromObj)
  680. {
  681.    if (*(void**)this != 
  682.        ((somParentMtabStructPtr)
  683.         (SOMTEmitCCClassData.parentMtab))->mtab)
  684.       return;
  685.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  686. }
  687.  
  688.  
  689. /* method: _get_somtTemplate */
  690. SOMTTemplateOutputC*   _get_somtTemplate()
  691. {
  692.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,_get_somtTemplate)
  693.     (this);
  694. }
  695.  
  696.  
  697. /* method: _set_somtTemplate */
  698. void   _set_somtTemplate(SOMTTemplateOutputC* somtTemplate)
  699. {
  700.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,_set_somtTemplate)
  701.     (this,somtTemplate);
  702. }
  703.  
  704.  
  705. /* method: _get_somtTargetFile */
  706. FILE*   _get_somtTargetFile()
  707. {
  708.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,_get_somtTargetFile)
  709.     (this);
  710. }
  711.  
  712.  
  713. /* method: _set_somtTargetFile */
  714. void   _set_somtTargetFile(FILE* somtTargetFile)
  715. {
  716.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,_set_somtTargetFile)
  717.     (this,somtTargetFile);
  718. }
  719.  
  720.  
  721. /* method: _get_somtTargetClass */
  722. SOMTClassEntryC*   _get_somtTargetClass()
  723. {
  724.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,_get_somtTargetClass)
  725.     (this);
  726. }
  727.  
  728.  
  729. /* method: _set_somtTargetClass */
  730. void   _set_somtTargetClass(SOMTClassEntryC* somtTargetClass)
  731. {
  732.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,_set_somtTargetClass)
  733.     (this,somtTargetClass);
  734. }
  735.  
  736.  
  737. /* method: _get_somtTargetModule */
  738. SOMTModuleEntryC*   _get_somtTargetModule()
  739. {
  740.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,_get_somtTargetModule)
  741.     (this);
  742. }
  743.  
  744.  
  745. /* method: _set_somtTargetModule */
  746. void   _set_somtTargetModule(SOMTModuleEntryC* somtTargetModule)
  747. {
  748.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,_set_somtTargetModule)
  749.     (this,somtTargetModule);
  750. }
  751.  
  752.  
  753. /* method: _get_somtTargetType */
  754. SOMTTargetTypeT   _get_somtTargetType()
  755. {
  756.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,_get_somtTargetType)
  757.     (this);
  758. }
  759.  
  760.  
  761. /* method: _set_somtTargetType */
  762. void   _set_somtTargetType(SOMTTargetTypeT somtTargetType)
  763. {
  764.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,_set_somtTargetType)
  765.     (this,somtTargetType);
  766. }
  767.  
  768.  
  769. /* method: _get_somtEmitterName */
  770. string   _get_somtEmitterName()
  771. {
  772.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,_get_somtEmitterName)
  773.     (this);
  774. }
  775.  
  776.  
  777. /* method: _set_somtEmitterName */
  778. void   _set_somtEmitterName(string somtEmitterName)
  779. {
  780.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,_set_somtEmitterName)
  781.     (this,somtEmitterName);
  782. }
  783.  
  784.  
  785. /* method: somtGenerateSections */
  786. boolean   somtGenerateSections()
  787. {
  788.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtGenerateSections)
  789.     (this);
  790. }
  791.  
  792.  
  793. /* method: somtOpenSymbolsFile */
  794. FILE*   somtOpenSymbolsFile(string file,
  795.         string mode)
  796. {
  797.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtOpenSymbolsFile)
  798.     (this,file,mode);
  799. }
  800.  
  801.  
  802. /* method: somtSetPredefinedSymbols */
  803. void   somtSetPredefinedSymbols()
  804. {
  805.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtSetPredefinedSymbols)
  806.     (this);
  807. }
  808.  
  809.  
  810. /* method: somtFileSymbols */
  811. void   somtFileSymbols()
  812. {
  813.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtFileSymbols)
  814.     (this);
  815. }
  816.  
  817.  
  818. /* method: somtEmitProlog */
  819. void   somtEmitProlog()
  820. {
  821.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitProlog)
  822.     (this);
  823. }
  824.  
  825.  
  826. /* method: somtEmitBaseIncludesProlog */
  827. void   somtEmitBaseIncludesProlog()
  828. {
  829.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitBaseIncludesProlog)
  830.     (this);
  831. }
  832.  
  833.  
  834. /* method: somtEmitBaseIncludes */
  835. void   somtEmitBaseIncludes(SOMTBaseClassEntryC* base)
  836. {
  837.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitBaseIncludes)
  838.     (this,base);
  839. }
  840.  
  841.  
  842. /* method: somtEmitBaseIncludesEpilog */
  843. void   somtEmitBaseIncludesEpilog()
  844. {
  845.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitBaseIncludesEpilog)
  846.     (this);
  847. }
  848.  
  849.  
  850. /* method: somtEmitMetaInclude */
  851. void   somtEmitMetaInclude()
  852. {
  853.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitMetaInclude)
  854.     (this);
  855. }
  856.  
  857.  
  858. /* method: somtEmitClass */
  859. void   somtEmitClass()
  860. {
  861.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitClass)
  862.     (this);
  863. }
  864.  
  865.  
  866. /* method: somtEmitMeta */
  867. void   somtEmitMeta()
  868. {
  869.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitMeta)
  870.     (this);
  871. }
  872.  
  873.  
  874. /* method: somtEmitBaseProlog */
  875. void   somtEmitBaseProlog()
  876. {
  877.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitBaseProlog)
  878.     (this);
  879. }
  880.  
  881.  
  882. /* method: somtEmitBase */
  883. void   somtEmitBase(SOMTBaseClassEntryC* base)
  884. {
  885.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitBase)
  886.     (this,base);
  887. }
  888.  
  889.  
  890. /* method: somtEmitBaseEpilog */
  891. void   somtEmitBaseEpilog()
  892. {
  893.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitBaseEpilog)
  894.     (this);
  895. }
  896.  
  897.  
  898. /* method: somtEmitPassthruProlog */
  899. void   somtEmitPassthruProlog()
  900. {
  901.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitPassthruProlog)
  902.     (this);
  903. }
  904.  
  905.  
  906. /* method: somtEmitPassthru */
  907. void   somtEmitPassthru(SOMTPassthruEntryC* entry)
  908. {
  909.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitPassthru)
  910.     (this,entry);
  911. }
  912.  
  913.  
  914. /* method: somtEmitPassthruEpilog */
  915. void   somtEmitPassthruEpilog()
  916. {
  917.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitPassthruEpilog)
  918.     (this);
  919. }
  920.  
  921.  
  922. /* method: somtEmitRelease */
  923. void   somtEmitRelease()
  924. {
  925.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitRelease)
  926.     (this);
  927. }
  928.  
  929.  
  930. /* method: somtEmitDataProlog */
  931. void   somtEmitDataProlog()
  932. {
  933.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitDataProlog)
  934.     (this);
  935. }
  936.  
  937.  
  938. /* method: somtEmitData */
  939. void   somtEmitData(SOMTDataEntryC* entry)
  940. {
  941.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitData)
  942.     (this,entry);
  943. }
  944.  
  945.  
  946. /* method: somtEmitDataEpilog */
  947. void   somtEmitDataEpilog()
  948. {
  949.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitDataEpilog)
  950.     (this);
  951. }
  952.  
  953.  
  954. /* method: somtEmitAttributeProlog */
  955. void   somtEmitAttributeProlog()
  956. {
  957.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitAttributeProlog)
  958.     (this);
  959. }
  960.  
  961.  
  962. /* method: somtEmitAttribute */
  963. void   somtEmitAttribute(SOMTAttributeEntryC* att)
  964. {
  965.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitAttribute)
  966.     (this,att);
  967. }
  968.  
  969.  
  970. /* method: somtEmitAttributeEpilog */
  971. void   somtEmitAttributeEpilog()
  972. {
  973.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitAttributeEpilog)
  974.     (this);
  975. }
  976.  
  977.  
  978. /* method: somtEmitConstantProlog */
  979. void   somtEmitConstantProlog()
  980. {
  981.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitConstantProlog)
  982.     (this);
  983. }
  984.  
  985.  
  986. /* method: somtEmitConstant */
  987. void   somtEmitConstant(SOMTConstEntryC* con)
  988. {
  989.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitConstant)
  990.     (this,con);
  991. }
  992.  
  993.  
  994. /* method: somtEmitConstantEpilog */
  995. void   somtEmitConstantEpilog()
  996. {
  997.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitConstantEpilog)
  998.     (this);
  999. }
  1000.  
  1001.  
  1002. /* method: somtEmitTypedefProlog */
  1003. void   somtEmitTypedefProlog()
  1004. {
  1005.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitTypedefProlog)
  1006.     (this);
  1007. }
  1008.  
  1009.  
  1010. /* method: somtEmitTypedef */
  1011. void   somtEmitTypedef(SOMTTypedefEntryC* td)
  1012. {
  1013.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitTypedef)
  1014.     (this,td);
  1015. }
  1016.  
  1017.  
  1018. /* method: somtEmitTypedefEpilog */
  1019. void   somtEmitTypedefEpilog()
  1020. {
  1021.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitTypedefEpilog)
  1022.     (this);
  1023. }
  1024.  
  1025.  
  1026. /* method: somtEmitStructProlog */
  1027. void   somtEmitStructProlog()
  1028. {
  1029.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitStructProlog)
  1030.     (this);
  1031. }
  1032.  
  1033.  
  1034. /* method: somtEmitStruct */
  1035. void   somtEmitStruct(SOMTStructEntryC* struc)
  1036. {
  1037.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitStruct)
  1038.     (this,struc);
  1039. }
  1040.  
  1041.  
  1042. /* method: somtEmitStructEpilog */
  1043. void   somtEmitStructEpilog()
  1044. {
  1045.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitStructEpilog)
  1046.     (this);
  1047. }
  1048.  
  1049.  
  1050. /* method: somtEmitUnionProlog */
  1051. void   somtEmitUnionProlog()
  1052. {
  1053.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitUnionProlog)
  1054.     (this);
  1055. }
  1056.  
  1057.  
  1058. /* method: somtEmitUnion */
  1059. void   somtEmitUnion(SOMTUnionEntryC* un)
  1060. {
  1061.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitUnion)
  1062.     (this,un);
  1063. }
  1064.  
  1065.  
  1066. /* method: somtEmitUnionEpilog */
  1067. void   somtEmitUnionEpilog()
  1068. {
  1069.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitUnionEpilog)
  1070.     (this);
  1071. }
  1072.  
  1073.  
  1074. /* method: somtEmitEnumProlog */
  1075. void   somtEmitEnumProlog()
  1076. {
  1077.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitEnumProlog)
  1078.     (this);
  1079. }
  1080.  
  1081.  
  1082. /* method: somtEmitEnum */
  1083. void   somtEmitEnum(SOMTEnumEntryC* en)
  1084. {
  1085.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitEnum)
  1086.     (this,en);
  1087. }
  1088.  
  1089.  
  1090. /* method: somtEmitEnumEpilog */
  1091. void   somtEmitEnumEpilog()
  1092. {
  1093.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitEnumEpilog)
  1094.     (this);
  1095. }
  1096.  
  1097.  
  1098. /* method: somtEmitInterfaceProlog */
  1099. void   somtEmitInterfaceProlog()
  1100. {
  1101.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitInterfaceProlog)
  1102.     (this);
  1103. }
  1104.  
  1105.  
  1106. /* method: somtEmitInterface */
  1107. void   somtEmitInterface(SOMTClassEntryC* intfc)
  1108. {
  1109.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitInterface)
  1110.     (this,intfc);
  1111. }
  1112.  
  1113.  
  1114. /* method: somtEmitInterfaceEpilog */
  1115. void   somtEmitInterfaceEpilog()
  1116. {
  1117.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitInterfaceEpilog)
  1118.     (this);
  1119. }
  1120.  
  1121.  
  1122. /* method: somtEmitModuleProlog */
  1123. void   somtEmitModuleProlog()
  1124. {
  1125.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitModuleProlog)
  1126.     (this);
  1127. }
  1128.  
  1129.  
  1130. /* method: somtEmitModule */
  1131. void   somtEmitModule(SOMTModuleEntryC* mod)
  1132. {
  1133.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitModule)
  1134.     (this,mod);
  1135. }
  1136.  
  1137.  
  1138. /* method: somtEmitModuleEpilog */
  1139. void   somtEmitModuleEpilog()
  1140. {
  1141.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitModuleEpilog)
  1142.     (this);
  1143. }
  1144.  
  1145.  
  1146. /* method: somtEmitMethodsProlog */
  1147. void   somtEmitMethodsProlog()
  1148. {
  1149.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitMethodsProlog)
  1150.     (this);
  1151. }
  1152.  
  1153.  
  1154. /* method: somtEmitMethods */
  1155. void   somtEmitMethods(SOMTMethodEntryC* method)
  1156. {
  1157.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitMethods)
  1158.     (this,method);
  1159. }
  1160.  
  1161.  
  1162. /* method: somtEmitMethodsEpilog */
  1163. void   somtEmitMethodsEpilog()
  1164. {
  1165.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitMethodsEpilog)
  1166.     (this);
  1167. }
  1168.  
  1169.  
  1170. /* method: somtEmitMethod */
  1171. void   somtEmitMethod(SOMTMethodEntryC* entry)
  1172. {
  1173.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitMethod)
  1174.     (this,entry);
  1175. }
  1176.  
  1177.  
  1178. /* method: somtEmitEpilog */
  1179. void   somtEmitEpilog()
  1180. {
  1181.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitEpilog)
  1182.     (this);
  1183. }
  1184.  
  1185.  
  1186. /* method: somtScanBases */
  1187. boolean   somtScanBases(string prolog,
  1188.         string each,
  1189.         string epilog)
  1190. {
  1191.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtScanBases)
  1192.     (this,prolog,each,epilog);
  1193. }
  1194.  
  1195.  
  1196. /* method: somtCheckVisibility */
  1197. boolean   somtCheckVisibility(SOMTMethodEntryC* entry)
  1198. {
  1199.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtCheckVisibility)
  1200.     (this,entry);
  1201. }
  1202.  
  1203.  
  1204. /* method: somtNew */
  1205. boolean   somtNew(SOMTMethodEntryC* entry)
  1206. {
  1207.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtNew)
  1208.     (this,entry);
  1209. }
  1210.  
  1211.  
  1212. /* method: somtImplemented */
  1213. boolean   somtImplemented(SOMTMethodEntryC* entry)
  1214. {
  1215.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtImplemented)
  1216.     (this,entry);
  1217. }
  1218.  
  1219.  
  1220. /* method: somtOverridden */
  1221. boolean   somtOverridden(SOMTMethodEntryC* entry)
  1222. {
  1223.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtOverridden)
  1224.     (this,entry);
  1225. }
  1226.  
  1227.  
  1228. /* method: somtInherited */
  1229. boolean   somtInherited(SOMTMethodEntryC* entry)
  1230. {
  1231.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtInherited)
  1232.     (this,entry);
  1233. }
  1234.  
  1235.  
  1236. /* method: somtAllVisible */
  1237. boolean   somtAllVisible(SOMTMethodEntryC* entry)
  1238. {
  1239.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtAllVisible)
  1240.     (this,entry);
  1241. }
  1242.  
  1243.  
  1244. /* method: somtAll */
  1245. boolean   somtAll(SOMTMethodEntryC* entry)
  1246. {
  1247.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtAll)
  1248.     (this,entry);
  1249. }
  1250.  
  1251.  
  1252. /* method: somtNewNoProc */
  1253. boolean   somtNewNoProc(SOMTEntryC* entry)
  1254. {
  1255.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtNewNoProc)
  1256.     (this,entry);
  1257. }
  1258.  
  1259.  
  1260. /* method: somtPrivOrPub */
  1261. boolean   somtPrivOrPub(SOMTEntryC* entry)
  1262. {
  1263.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtPrivOrPub)
  1264.     (this,entry);
  1265. }
  1266.  
  1267.  
  1268. /* method: somtNewProc */
  1269. boolean   somtNewProc(SOMTEntryC* entry)
  1270. {
  1271.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtNewProc)
  1272.     (this,entry);
  1273. }
  1274.  
  1275.  
  1276. /* method: somtLink */
  1277. boolean   somtLink(SOMTEntryC* entry)
  1278. {
  1279.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtLink)
  1280.     (this,entry);
  1281. }
  1282.  
  1283.  
  1284. /* method: somtVA */
  1285. boolean   somtVA(SOMTEntryC* entry)
  1286. {
  1287.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtVA)
  1288.     (this,entry);
  1289. }
  1290.  
  1291.  
  1292. /* method: somtScanMethods */
  1293. boolean   somtScanMethods(string filter,
  1294.         string prolog,
  1295.         string each,
  1296.         string epilog,
  1297.         boolean forceProlog)
  1298. {
  1299.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtScanMethods)
  1300.     (this,filter,prolog,each,epilog,forceProlog);
  1301. }
  1302.  
  1303.  
  1304. /* method: somtScanConstants */
  1305. boolean   somtScanConstants(string prolog,
  1306.         string each,
  1307.         string epilog)
  1308. {
  1309.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtScanConstants)
  1310.     (this,prolog,each,epilog);
  1311. }
  1312.  
  1313.  
  1314. /* method: somtScanTypedefs */
  1315. boolean   somtScanTypedefs(string prolog,
  1316.         string each,
  1317.         string epilog)
  1318. {
  1319.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtScanTypedefs)
  1320.     (this,prolog,each,epilog);
  1321. }
  1322.  
  1323.  
  1324. /* method: somtScanStructs */
  1325. boolean   somtScanStructs(string prolog,
  1326.         string each,
  1327.         string epilog)
  1328. {
  1329.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtScanStructs)
  1330.     (this,prolog,each,epilog);
  1331. }
  1332.  
  1333.  
  1334. /* method: somtScanUnions */
  1335. boolean   somtScanUnions(string prolog,
  1336.         string each,
  1337.         string epilog)
  1338. {
  1339.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtScanUnions)
  1340.     (this,prolog,each,epilog);
  1341. }
  1342.  
  1343.  
  1344. /* method: somtScanEnums */
  1345. boolean   somtScanEnums(string prolog,
  1346.         string each,
  1347.         string epilog)
  1348. {
  1349.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtScanEnums)
  1350.     (this,prolog,each,epilog);
  1351. }
  1352.  
  1353.  
  1354. /* method: somtScanData */
  1355. boolean   somtScanData(string prolog,
  1356.         string each,
  1357.         string epilog)
  1358. {
  1359.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtScanData)
  1360.     (this,prolog,each,epilog);
  1361. }
  1362.  
  1363.  
  1364. /* method: somtScanAttributes */
  1365. boolean   somtScanAttributes(string prolog,
  1366.         string each,
  1367.         string epilog)
  1368. {
  1369.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtScanAttributes)
  1370.     (this,prolog,each,epilog);
  1371. }
  1372.  
  1373.  
  1374. /* method: somtScanInterfaces */
  1375. boolean   somtScanInterfaces(string prolog,
  1376.         string each,
  1377.         string epilog)
  1378. {
  1379.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtScanInterfaces)
  1380.     (this,prolog,each,epilog);
  1381. }
  1382.  
  1383.  
  1384. /* method: somtScanModules */
  1385. boolean   somtScanModules(string prolog,
  1386.         string each,
  1387.         string epilog)
  1388. {
  1389.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtScanModules)
  1390.     (this,prolog,each,epilog);
  1391. }
  1392.  
  1393.  
  1394. /* method: somtScanPassthru */
  1395. boolean   somtScanPassthru(boolean before,
  1396.         string prolog,
  1397.         string each,
  1398.         string epilog)
  1399. {
  1400.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtScanPassthru)
  1401.     (this,before,prolog,each,epilog);
  1402. }
  1403.  
  1404.  
  1405. /* method: somtEmitFullPassthru */
  1406. void   somtEmitFullPassthru(boolean before,
  1407.         string language)
  1408. {
  1409.    SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtEmitFullPassthru)
  1410.     (this,before,language);
  1411. }
  1412.  
  1413.  
  1414. /* method: somtScanDataF */
  1415. boolean   somtScanDataF(string filter,
  1416.         string prolog,
  1417.         string each,
  1418.         string epilog,
  1419.         boolean forceProlog)
  1420. {
  1421.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtScanDataF)
  1422.     (this,filter,prolog,each,epilog,forceProlog);
  1423. }
  1424.  
  1425.  
  1426. /* method: somtScanBasesF */
  1427. boolean   somtScanBasesF(string filter,
  1428.         string prolog,
  1429.         string each,
  1430.         string epilog,
  1431.         boolean forceProlog)
  1432. {
  1433.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtScanBasesF)
  1434.     (this,filter,prolog,each,epilog,forceProlog);
  1435. }
  1436.  
  1437.  
  1438. /* method: somtGetGlobalModifierValue */
  1439. string   somtGetGlobalModifierValue(string modifierName)
  1440. {
  1441.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtGetGlobalModifierValue)
  1442.     (this,modifierName);
  1443. }
  1444.  
  1445.  
  1446. /* method: somtGetFirstGlobalDefinition */
  1447. SOMTEntryC*   somtGetFirstGlobalDefinition()
  1448. {
  1449.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtGetFirstGlobalDefinition)
  1450.     (this);
  1451. }
  1452.  
  1453.  
  1454. /* method: somtGetNextGlobalDefinition */
  1455. SOMTEntryC*   somtGetNextGlobalDefinition()
  1456. {
  1457.    return SOM_ResolveD(this,SOMTEmitC,SOMTEmitC,somtGetNextGlobalDefinition)
  1458.     (this);
  1459. }
  1460.  
  1461.  
  1462. /*
  1463.  * Reintroduce inherited methods
  1464.  */
  1465.  
  1466. /* initializer method: somDefaultInit */
  1467. void   somDefaultInit(somInitCtrl* ctrl)
  1468. {
  1469.    SOM_ResolveD(this,SOMTEmitC,SOMObject,somDefaultInit)
  1470.     (this,ctrl);
  1471. }
  1472.  
  1473.  
  1474. /* method: somDestruct */
  1475. void   somDestruct(octet doFree,
  1476.         somDestructCtrl* ctrl)
  1477. {
  1478.    SOM_ResolveD(this,SOMTEmitC,SOMObject,somDestruct)
  1479.     (this,doFree,ctrl);
  1480. }
  1481.  
  1482.  
  1483. /* initializer method: somDefaultCopyInit */
  1484. void   somDefaultCopyInit(somInitCtrl* ctrl,
  1485.         SOMObject* fromObj)
  1486. {
  1487.    SOM_ResolveD(this,SOMTEmitC,SOMObject,somDefaultCopyInit)
  1488.     (this,ctrl,fromObj);
  1489. }
  1490.  
  1491.  
  1492. /* method: somDefaultAssign */
  1493. SOMTEmitC*  somDefaultAssign(somAssignCtrl* ctrl,
  1494.         SOMObject* fromObj)
  1495. {
  1496.    return SOM_ResolveD(this,SOMTEmitC,SOMObject,somDefaultAssign)
  1497.     (this,ctrl,fromObj);
  1498. }
  1499.  
  1500.  
  1501. /* initializer method: somDefaultConstCopyInit */
  1502. void   somDefaultConstCopyInit(somInitCtrl* ctrl,
  1503.         SOMObject* fromObj)
  1504. {
  1505.    SOM_ResolveD(this,SOMTEmitC,SOMObject,somDefaultConstCopyInit)
  1506.     (this,ctrl,fromObj);
  1507. }
  1508.  
  1509.  
  1510. /* initializer method: somDefaultVCopyInit */
  1511. void   somDefaultVCopyInit(somInitCtrl* ctrl,
  1512.         SOMObject* fromObj)
  1513. {
  1514.    SOM_ResolveD(this,SOMTEmitC,SOMObject,somDefaultVCopyInit)
  1515.     (this,ctrl,fromObj);
  1516. }
  1517.  
  1518.  
  1519. /* initializer method: somDefaultConstVCopyInit */
  1520. void   somDefaultConstVCopyInit(somInitCtrl* ctrl,
  1521.         SOMObject* fromObj)
  1522. {
  1523.    SOM_ResolveD(this,SOMTEmitC,SOMObject,somDefaultConstVCopyInit)
  1524.     (this,ctrl,fromObj);
  1525. }
  1526.  
  1527.  
  1528. /* method: somDefaultConstAssign */
  1529. SOMTEmitC*  somDefaultConstAssign(somAssignCtrl* ctrl,
  1530.         SOMObject* fromObj)
  1531. {
  1532.    return SOM_ResolveD(this,SOMTEmitC,SOMObject,somDefaultConstAssign)
  1533.     (this,ctrl,fromObj);
  1534. }
  1535.  
  1536.  
  1537. /* method: somDefaultVAssign */
  1538. SOMTEmitC*  somDefaultVAssign(somAssignCtrl* ctrl,
  1539.         SOMObject* fromObj)
  1540. {
  1541.    return SOM_ResolveD(this,SOMTEmitC,SOMObject,somDefaultVAssign)
  1542.     (this,ctrl,fromObj);
  1543. }
  1544.  
  1545.  
  1546. /* method: somDefaultConstVAssign */
  1547. SOMTEmitC*  somDefaultConstVAssign(somAssignCtrl* ctrl,
  1548.         SOMObject* fromObj)
  1549. {
  1550.    return SOM_ResolveD(this,SOMTEmitC,SOMObject,somDefaultConstVAssign)
  1551.     (this,ctrl,fromObj);
  1552. }
  1553.  
  1554.  
  1555. /* method: somInit */
  1556. void   somInit()
  1557. {
  1558.    SOM_ResolveD(this,SOMTEmitC,SOMObject,somInit)
  1559.     (this);
  1560. }
  1561.  
  1562.  
  1563. /* method: somFree */
  1564. void   somFree()
  1565. {
  1566.    SOM_ResolveD(this,SOMTEmitC,SOMObject,somFree)
  1567.     (this);
  1568. }
  1569.  
  1570.  
  1571. /* method: somUninit */
  1572. void   somUninit()
  1573. {
  1574.    SOM_ResolveD(this,SOMTEmitC,SOMObject,somUninit)
  1575.     (this);
  1576. }
  1577.  
  1578.  
  1579. /* method: somGetClass */
  1580. SOMClass*   somGetClass()
  1581. {
  1582.    return SOM_ResolveD(this,SOMTEmitC,SOMObject,somGetClass)
  1583.     (this);
  1584. }
  1585.  
  1586.  
  1587. /* method: somGetClassName */
  1588. string   somGetClassName()
  1589. {
  1590.    return SOM_ResolveD(this,SOMTEmitC,SOMObject,somGetClassName)
  1591.     (this);
  1592. }
  1593.  
  1594.  
  1595. /* method: somGetSize */
  1596. long   somGetSize()
  1597. {
  1598.    return SOM_ResolveD(this,SOMTEmitC,SOMObject,somGetSize)
  1599.     (this);
  1600. }
  1601.  
  1602.  
  1603. /* method: somIsA */
  1604. boolean   somIsA(SOMClass* aClassObj)
  1605. {
  1606.    return SOM_ResolveD(this,SOMTEmitC,SOMObject,somIsA)
  1607.     (this,aClassObj);
  1608. }
  1609.  
  1610.  
  1611. /* method: somIsInstanceOf */
  1612. boolean   somIsInstanceOf(SOMClass* aClassObj)
  1613. {
  1614.    return SOM_ResolveD(this,SOMTEmitC,SOMObject,somIsInstanceOf)
  1615.     (this,aClassObj);
  1616. }
  1617.  
  1618.  
  1619. /* method: somRespondsTo */
  1620. boolean   somRespondsTo(somId mId)
  1621. {
  1622.    return SOM_ResolveD(this,SOMTEmitC,SOMObject,somRespondsTo)
  1623.     (this,mId);
  1624. }
  1625.  
  1626.  
  1627. /* va_list method: somDispatch */
  1628. /* the va_list invocation form */
  1629. boolean   SOMTEmitC_somDispatch(somToken* retValue,
  1630.         somId methodId,
  1631.         va_list ap)
  1632. {
  1633. return SOM_ResolveD(this,SOMTEmitC,SOMObject,somDispatch)
  1634.     (this,retValue,methodId,ap);
  1635. }
  1636.  
  1637. /* the varargs invocation form */
  1638. boolean   somDispatch(somToken* retValue,
  1639.         somId methodId,
  1640.         ...)
  1641. {
  1642.    va_list ap;
  1643.    va_start(ap, methodId);
  1644.    boolean __somResult = 
  1645.       SOM_ResolveD(this,SOMTEmitC,SOMObject,somDispatch)
  1646.     (this,retValue,methodId,ap);
  1647.    va_end(ap);
  1648.    return __somResult;
  1649. }
  1650.  
  1651.  
  1652. /* va_list method: somClassDispatch */
  1653. /* the va_list invocation form */
  1654. boolean   SOMTEmitC_somClassDispatch(SOMClass* clsObj,
  1655.         somToken* retValue,
  1656.         somId methodId,
  1657.         va_list ap)
  1658. {
  1659. return SOM_ResolveD(this,SOMTEmitC,SOMObject,somClassDispatch)
  1660.     (this,clsObj,retValue,methodId,ap);
  1661. }
  1662.  
  1663. /* the varargs invocation form */
  1664. boolean   somClassDispatch(SOMClass* clsObj,
  1665.         somToken* retValue,
  1666.         somId methodId,
  1667.         ...)
  1668. {
  1669.    va_list ap;
  1670.    va_start(ap, methodId);
  1671.    boolean __somResult = 
  1672.       SOM_ResolveD(this,SOMTEmitC,SOMObject,somClassDispatch)
  1673.     (this,clsObj,retValue,methodId,ap);
  1674.    va_end(ap);
  1675.    return __somResult;
  1676. }
  1677.  
  1678.  
  1679. /* method: somCastObj */
  1680. boolean   somCastObj(SOMClass* cls)
  1681. {
  1682.    return SOM_ResolveD(this,SOMTEmitC,SOMObject,somCastObj)
  1683.     (this,cls);
  1684. }
  1685.  
  1686.  
  1687. /* method: somResetObj */
  1688. boolean   somResetObj()
  1689. {
  1690.    return SOM_ResolveD(this,SOMTEmitC,SOMObject,somResetObj)
  1691.     (this);
  1692. }
  1693.  
  1694.  
  1695. /* method: somPrintSelf */
  1696. SOMObject*   somPrintSelf()
  1697. {
  1698.    return SOM_ResolveD(this,SOMTEmitC,SOMObject,somPrintSelf)
  1699.     (this);
  1700. }
  1701.  
  1702.  
  1703. /* method: somDumpSelf */
  1704. void   somDumpSelf(long level)
  1705. {
  1706.    SOM_ResolveD(this,SOMTEmitC,SOMObject,somDumpSelf)
  1707.     (this,level);
  1708. }
  1709.  
  1710.  
  1711. /* method: somDumpSelfInt */
  1712. void   somDumpSelfInt(long level)
  1713. {
  1714.    SOM_ResolveD(this,SOMTEmitC,SOMObject,somDumpSelfInt)
  1715.     (this,level);
  1716. }
  1717.  
  1718.  
  1719.  
  1720. };   /* SOMTEmitC */
  1721.  
  1722.  
  1723.  
  1724. #endif       /* SOM_SOMTEmitC_xh */
  1725.