
/*
 * This file was generated by the SOM Compiler.
 * FileName: scemit.h.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.3
 *     SOM Emitter emith.dll: 2.41
 */

/*
 * 
 *   COMPONENT_NAME: some
 * 
 *   ORIGINS: 27
 * 
 * 
 *   10H9767, 10H9769  (C) COPYRIGHT International Business Machines Corp. 1992,1994
 *   All Rights Reserved
 *   Licensed Materials - Property of IBM
 *   US Government Users Restricted Rights - Use, duplication or
 *   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
 *  @(#) somc/sctypes.h 2.6 9/1/94 19:26:58 [9/21/94 17:47:11]
 * 
 */


#ifndef SOM_SOMTEmitC_h
#define SOM_SOMTEmitC_h


#include <som.h>

/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))



/*
 * Define class data structures as resolution macros
 */
#define SOMTEmitCClassData (*resolve_SOMTEmitCClassData())
#define SOMTEmitCCClassData (*resolve_SOMTEmitCCClassData())

/*
 * Define the class name as an object type
 */
#ifndef SOMTEmitC
#define SOMTEmitC SOMObject
#endif
#include <somobj.h>

/*
 * Start of user-defined types:
 */
#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
#ifndef SOMStringTableC
    #define SOMStringTableC SOMObject
#endif /* SOMStringTableC */
#ifndef SOMTEntryC
    #define SOMTEntryC SOMObject
#endif /* SOMTEntryC */
#ifndef SOMTEmitC
    #define SOMTEmitC SOMObject
#endif /* SOMTEmitC */
#ifndef SOMTMetaClassEntryC
    #define SOMTMetaClassEntryC SOMObject
#endif /* SOMTMetaClassEntryC */
#ifndef SOMTAttributeEntryC
    #define SOMTAttributeEntryC SOMObject
#endif /* SOMTAttributeEntryC */
#ifndef SOMTTypedefEntryC
    #define SOMTTypedefEntryC SOMObject
#endif /* SOMTTypedefEntryC */
#ifndef SOMTBaseClassEntryC
    #define SOMTBaseClassEntryC SOMObject
#endif /* SOMTBaseClassEntryC */
#ifndef SOMTPassthruEntryC
    #define SOMTPassthruEntryC SOMObject
#endif /* SOMTPassthruEntryC */
#ifndef SOMTDataEntryC
    #define SOMTDataEntryC SOMObject
#endif /* SOMTDataEntryC */
#ifndef SOMTMethodEntryC
    #define SOMTMethodEntryC SOMObject
#endif /* SOMTMethodEntryC */
#ifndef SOMTClassEntryC
    #define SOMTClassEntryC SOMObject
#endif /* SOMTClassEntryC */
#ifndef SOMTModuleEntryC
    #define SOMTModuleEntryC SOMObject
#endif /* SOMTModuleEntryC */
#ifndef SOMTParameterEntryC
    #define SOMTParameterEntryC SOMObject
#endif /* SOMTParameterEntryC */
#ifndef SOMTStructEntryC
    #define SOMTStructEntryC SOMObject
#endif /* SOMTStructEntryC */
#ifndef SOMTUnionEntryC
    #define SOMTUnionEntryC SOMObject
#endif /* SOMTUnionEntryC */
#ifndef SOMTEnumEntryC
    #define SOMTEnumEntryC SOMObject
#endif /* SOMTEnumEntryC */
#ifndef SOMTConstEntryC
    #define SOMTConstEntryC SOMObject
#endif /* SOMTConstEntryC */
#ifndef SOMTSequenceEntryC
    #define SOMTSequenceEntryC SOMObject
#endif /* SOMTSequenceEntryC */
#ifndef SOMTStringEntryC
    #define SOMTStringEntryC SOMObject
#endif /* SOMTStringEntryC */
#ifndef SOMTEnumNameEntryC
    #define SOMTEnumNameEntryC SOMObject
#endif /* SOMTEnumNameEntryC */
#ifndef SOMTCommonEntryC
    #define SOMTCommonEntryC SOMObject
#endif /* SOMTCommonEntryC */
#ifndef SOMTUserDefinedTypeEntryC
    #define SOMTUserDefinedTypeEntryC SOMObject
#endif /* SOMTUserDefinedTypeEntryC */

/*
 * End of user-defined types.
 */

/*
 * Passthru lines: File: "C.h", "after"
 */
#include <sctypes.h>
#include <sctmplt.h>
#include <scclass.h>
#include <scmeta.h>
#include <scmethod.h>
#include <scpass.h>
    /*
     * These macros provide short-hands for the use of the Scan
     * Methods.
     */

    #define SCAN_NOFILTER(scan,method) \
        _##scan(somSelf, #method"Prolog", #method, #method"Epilog")
    #define SCAN_NOFILTER_SN(scan,method,base,newbase) \
        {_somtSetSymbolCopyBoth(_t, #base"PrologSN", #newbase"PrologS"); \
        _somtSetSymbolCopyBoth(_t, #base"SN", #newbase"S"); \
        _somtSetSymbolCopyBoth(_t, #base"EpilogSN", #newbase"EpilogS"); \
        _##scan(somSelf, #method"Prolog", #method, #method"Epilog");}
    #define SCAN_FILTER(scan,filt,method) \
        _##scan(somSelf, #filt, #method"Prolog", #method, #method"Epilog",0)
    #define SCAN_FILTER_SN(scan,filt,method,base,newbase) \
        {_somtSetSymbolCopyBoth(_t, #base"PrologSN", #newbase"PrologS"); \
        _somtSetSymbolCopyBoth(_t, #base"SN", #newbase"S"); \
        _somtSetSymbolCopyBoth(_t, #base"EpilogSN", #newbase"EpilogS"); \
        _##scan(somSelf, #filt, #method"Prolog", #method, #method"Epilog",0);}

#define SOMTEmitC_MajorVersion 2
#define SOMTEmitC_MinorVersion 1

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define SOMTEmitCNewClass c
#define SOMTEmitCClassData d
#define SOMTEmitCCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define SOMTEmitC_classObj SOMTEmitCClassData.classObject
#define _SOMTEmitC SOMTEmitC_classObj

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOMClass * SOMLINK SOMTEmitCNewClass(integer4 somntmajorVersion,
		integer4 somntminorVersion);

/*
 * Declare the class data structure
 */
SOMEXTERN struct SOMTEmitCClassDataStructure {
	SOMClass *classObject;
	somMToken _get_somtTemplate;
	somMToken _get_somtTargetFile;
	somMToken _set_somtTargetFile;
	somMToken _get_somtTargetClass;
	somMToken _set_somtTargetClass;
	somMToken _get_somtTargetModule;
	somMToken _set_somtTargetModule;
	somMToken _get_somtTargetType;
	somMToken _set_somtTargetType;
	somMToken somtGenerateSections;
	somMToken somtOpenSymbolsFile;
	somMToken somtSetPredefinedSymbols;
	somMToken somtFileSymbols;
	somMToken somtEmitProlog;
	somMToken somtEmitBaseIncludesProlog;
	somMToken somtEmitBaseIncludes;
	somMToken somtEmitBaseIncludesEpilog;
	somMToken somtEmitMetaInclude;
	somMToken somtEmitClass;
	somMToken somtEmitMeta;
	somMToken somtEmitBaseProlog;
	somMToken somtEmitBase;
	somMToken somtEmitBaseEpilog;
	somMToken somtEmitPassthruProlog;
	somMToken somtEmitPassthru;
	somMToken somtEmitPassthruEpilog;
	somMToken somtEmitRelease;
	somMToken somtEmitDataProlog;
	somMToken somtEmitData;
	somMToken somtEmitDataEpilog;
	somMToken somtEmitMethodsProlog;
	somMToken somtEmitMethods;
	somMToken somtEmitMethodsEpilog;
	somMToken somtEmitMethod;
	somMToken somtEmitEpilog;
	somMToken somtScanBases;
	somMToken somtScanConstants;
	somMToken somtCheckVisibility;
	somMToken somtNew;
	somMToken somtImplemented;
	somMToken somtOverridden;
	somMToken somtInherited;
	somMToken somtAllVisible;
	somMToken somtAll;
	somMToken somtNewNoProc;
	somMToken somtPrivOrPub;
	somMToken somtNewProc;
	somMToken somtLink;
	somMToken somtVA;
	somMToken somtScanMethods;
	somMToken somtScanData;
	somMToken somtScanPassthru;
	somMToken somtEmitFullPassthru;
	somMToken somtScanDataF;
	somMToken somtScanBasesF;
	somMToken _set_somtTemplate;
	somMToken _set_somtEmitterName;
	somMToken _get_somtEmitterName;
	somMToken somtEmitAttributeProlog;
	somMToken somtEmitAttribute;
	somMToken somtEmitAttributeEpilog;
	somMToken somtEmitConstantProlog;
	somMToken somtEmitConstant;
	somMToken somtEmitConstantEpilog;
	somMToken somtEmitTypedefProlog;
	somMToken somtEmitTypedef;
	somMToken somtEmitTypedefEpilog;
	somMToken somtEmitStructProlog;
	somMToken somtEmitStruct;
	somMToken somtEmitStructEpilog;
	somMToken somtEmitUnionProlog;
	somMToken somtEmitUnion;
	somMToken somtEmitUnionEpilog;
	somMToken somtEmitEnumProlog;
	somMToken somtEmitEnum;
	somMToken somtEmitEnumEpilog;
	somMToken somtEmitInterfaceProlog;
	somMToken somtEmitInterface;
	somMToken somtEmitInterfaceEpilog;
	somMToken somtEmitModuleProlog;
	somMToken somtEmitModule;
	somMToken somtEmitModuleEpilog;
	somMToken somtScanAttributes;
	somMToken somtScanTypedefs;
	somMToken somtScanStructs;
	somMToken somtScanUnions;
	somMToken somtScanEnums;
	somMToken somtScanInterfaces;
	somMToken somtScanModules;
	somMToken somtGetGlobalModifierValue;
	somMToken somtGetFirstGlobalDefinition;
	somMToken somtGetNextGlobalDefinition;
}  _SOMTEmitCClassData;
SOMEXTERN struct SOMTEmitCClassDataStructure * SOMLINK resolve_SOMTEmitCClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct SOMTEmitCCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _SOMTEmitCCClassData;
SOMEXTERN struct SOMTEmitCCClassDataStructure * SOMLINK resolve_SOMTEmitCCClassData(void);

/*
 * New and Renew macros for SOMTEmitC
 */
#define SOMTEmitCNew() \
   (_somNew(_SOMTEmitC ? _SOMTEmitC : SOMTEmitCNewClass(SOMTEmitC_MajorVersion, SOMTEmitC_MinorVersion)))
#define SOMTEmitCRenew(buf) \
   (_somRenew(_SOMTEmitC ? _SOMTEmitC : SOMTEmitCNewClass(SOMTEmitC_MajorVersion, SOMTEmitC_MinorVersion), buf))

/*
 * Override method: somInit
 */
#define SOMTEmitC_somInit(somSelf) \
	SOMObject_somInit(somSelf)

/*
 * Override method: somUninit
 */
#define SOMTEmitC_somUninit(somSelf) \
	SOMObject_somUninit(somSelf)

/*
 * Override method: somDumpSelfInt
 */
#define SOMTEmitC_somDumpSelfInt(somSelf,level) \
	SOMObject_somDumpSelfInt(somSelf,level)

/*
 * New Method: _get_somtTemplate
 */
typedef SOMTTemplateOutputC*   (SOMLINK * somTD_SOMTEmitC__get_somtTemplate)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC__get_somtTemplate "::SOMTEmitC::somtTemplate"
#define SOMTEmitC__get_somtTemplate(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, _get_somtTemplate) \
	(somSelf))
#ifndef SOMGD_get_somtTemplate
    #if (defined(_get_somtTemplate) || defined(__get_somtTemplate))
        #undef _get_somtTemplate
        #undef __get_somtTemplate
        #define SOMGD_get_somtTemplate 1
    #else
        #define __get_somtTemplate SOMTEmitC__get_somtTemplate
    #endif /* __get_somtTemplate */
#endif /* SOMGD_get_somtTemplate */

/*
 * New Method: _set_somtTemplate
 */
typedef void   (SOMLINK * somTD_SOMTEmitC__set_somtTemplate)(SOMTEmitC *somSelf,
		SOMTTemplateOutputC* somtTemplate);
#define somMD_SOMTEmitC__set_somtTemplate "::SOMTEmitC::somtTemplate"
#define SOMTEmitC__set_somtTemplate(somSelf,somtTemplate) \
    (SOM_Resolve(somSelf, SOMTEmitC, _set_somtTemplate) \
	(somSelf,somtTemplate))
#ifndef SOMGD_set_somtTemplate
    #if (defined(_set_somtTemplate) || defined(__set_somtTemplate))
        #undef _set_somtTemplate
        #undef __set_somtTemplate
        #define SOMGD_set_somtTemplate 1
    #else
        #define __set_somtTemplate SOMTEmitC__set_somtTemplate
    #endif /* __set_somtTemplate */
#endif /* SOMGD_set_somtTemplate */

/*
 * New Method: _get_somtTargetFile
 */
typedef FILE*   (SOMLINK * somTD_SOMTEmitC__get_somtTargetFile)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC__get_somtTargetFile "::SOMTEmitC::somtTargetFile"
#define SOMTEmitC__get_somtTargetFile(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, _get_somtTargetFile) \
	(somSelf))
#ifndef SOMGD_get_somtTargetFile
    #if (defined(_get_somtTargetFile) || defined(__get_somtTargetFile))
        #undef _get_somtTargetFile
        #undef __get_somtTargetFile
        #define SOMGD_get_somtTargetFile 1
    #else
        #define __get_somtTargetFile SOMTEmitC__get_somtTargetFile
    #endif /* __get_somtTargetFile */
#endif /* SOMGD_get_somtTargetFile */

/*
 * New Method: _set_somtTargetFile
 */
typedef void   (SOMLINK * somTD_SOMTEmitC__set_somtTargetFile)(SOMTEmitC *somSelf,
		FILE* somtTargetFile);
#define somMD_SOMTEmitC__set_somtTargetFile "::SOMTEmitC::somtTargetFile"
#define SOMTEmitC__set_somtTargetFile(somSelf,somtTargetFile) \
    (SOM_Resolve(somSelf, SOMTEmitC, _set_somtTargetFile) \
	(somSelf,somtTargetFile))
#ifndef SOMGD_set_somtTargetFile
    #if (defined(_set_somtTargetFile) || defined(__set_somtTargetFile))
        #undef _set_somtTargetFile
        #undef __set_somtTargetFile
        #define SOMGD_set_somtTargetFile 1
    #else
        #define __set_somtTargetFile SOMTEmitC__set_somtTargetFile
    #endif /* __set_somtTargetFile */
#endif /* SOMGD_set_somtTargetFile */

/*
 * New Method: _get_somtTargetClass
 */
typedef SOMTClassEntryC*   (SOMLINK * somTD_SOMTEmitC__get_somtTargetClass)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC__get_somtTargetClass "::SOMTEmitC::somtTargetClass"
#define SOMTEmitC__get_somtTargetClass(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, _get_somtTargetClass) \
	(somSelf))
#ifndef SOMGD_get_somtTargetClass
    #if (defined(_get_somtTargetClass) || defined(__get_somtTargetClass))
        #undef _get_somtTargetClass
        #undef __get_somtTargetClass
        #define SOMGD_get_somtTargetClass 1
    #else
        #define __get_somtTargetClass SOMTEmitC__get_somtTargetClass
    #endif /* __get_somtTargetClass */
#endif /* SOMGD_get_somtTargetClass */

/*
 * New Method: _set_somtTargetClass
 */
typedef void   (SOMLINK * somTD_SOMTEmitC__set_somtTargetClass)(SOMTEmitC *somSelf,
		SOMTClassEntryC* somtTargetClass);
#define somMD_SOMTEmitC__set_somtTargetClass "::SOMTEmitC::somtTargetClass"
#define SOMTEmitC__set_somtTargetClass(somSelf,somtTargetClass) \
    (SOM_Resolve(somSelf, SOMTEmitC, _set_somtTargetClass) \
	(somSelf,somtTargetClass))
#ifndef SOMGD_set_somtTargetClass
    #if (defined(_set_somtTargetClass) || defined(__set_somtTargetClass))
        #undef _set_somtTargetClass
        #undef __set_somtTargetClass
        #define SOMGD_set_somtTargetClass 1
    #else
        #define __set_somtTargetClass SOMTEmitC__set_somtTargetClass
    #endif /* __set_somtTargetClass */
#endif /* SOMGD_set_somtTargetClass */

/*
 * New Method: _get_somtTargetModule
 */
typedef SOMTModuleEntryC*   (SOMLINK * somTD_SOMTEmitC__get_somtTargetModule)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC__get_somtTargetModule "::SOMTEmitC::somtTargetModule"
#define SOMTEmitC__get_somtTargetModule(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, _get_somtTargetModule) \
	(somSelf))
#ifndef SOMGD_get_somtTargetModule
    #if (defined(_get_somtTargetModule) || defined(__get_somtTargetModule))
        #undef _get_somtTargetModule
        #undef __get_somtTargetModule
        #define SOMGD_get_somtTargetModule 1
    #else
        #define __get_somtTargetModule SOMTEmitC__get_somtTargetModule
    #endif /* __get_somtTargetModule */
#endif /* SOMGD_get_somtTargetModule */

/*
 * New Method: _set_somtTargetModule
 */
typedef void   (SOMLINK * somTD_SOMTEmitC__set_somtTargetModule)(SOMTEmitC *somSelf,
		SOMTModuleEntryC* somtTargetModule);
#define somMD_SOMTEmitC__set_somtTargetModule "::SOMTEmitC::somtTargetModule"
#define SOMTEmitC__set_somtTargetModule(somSelf,somtTargetModule) \
    (SOM_Resolve(somSelf, SOMTEmitC, _set_somtTargetModule) \
	(somSelf,somtTargetModule))
#ifndef SOMGD_set_somtTargetModule
    #if (defined(_set_somtTargetModule) || defined(__set_somtTargetModule))
        #undef _set_somtTargetModule
        #undef __set_somtTargetModule
        #define SOMGD_set_somtTargetModule 1
    #else
        #define __set_somtTargetModule SOMTEmitC__set_somtTargetModule
    #endif /* __set_somtTargetModule */
#endif /* SOMGD_set_somtTargetModule */

/*
 * New Method: _get_somtTargetType
 */
typedef SOMTTargetTypeT   (SOMLINK * somTD_SOMTEmitC__get_somtTargetType)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC__get_somtTargetType "::SOMTEmitC::somtTargetType"
#define SOMTEmitC__get_somtTargetType(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, _get_somtTargetType) \
	(somSelf))
#ifndef SOMGD_get_somtTargetType
    #if (defined(_get_somtTargetType) || defined(__get_somtTargetType))
        #undef _get_somtTargetType
        #undef __get_somtTargetType
        #define SOMGD_get_somtTargetType 1
    #else
        #define __get_somtTargetType SOMTEmitC__get_somtTargetType
    #endif /* __get_somtTargetType */
#endif /* SOMGD_get_somtTargetType */

/*
 * New Method: _set_somtTargetType
 */
typedef void   (SOMLINK * somTD_SOMTEmitC__set_somtTargetType)(SOMTEmitC *somSelf,
		SOMTTargetTypeT somtTargetType);
#define somMD_SOMTEmitC__set_somtTargetType "::SOMTEmitC::somtTargetType"
#define SOMTEmitC__set_somtTargetType(somSelf,somtTargetType) \
    (SOM_Resolve(somSelf, SOMTEmitC, _set_somtTargetType) \
	(somSelf,somtTargetType))
#ifndef SOMGD_set_somtTargetType
    #if (defined(_set_somtTargetType) || defined(__set_somtTargetType))
        #undef _set_somtTargetType
        #undef __set_somtTargetType
        #define SOMGD_set_somtTargetType 1
    #else
        #define __set_somtTargetType SOMTEmitC__set_somtTargetType
    #endif /* __set_somtTargetType */
#endif /* SOMGD_set_somtTargetType */

/*
 * New Method: _get_somtEmitterName
 */
typedef string   (SOMLINK * somTD_SOMTEmitC__get_somtEmitterName)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC__get_somtEmitterName "::SOMTEmitC::somtEmitterName"
#define SOMTEmitC__get_somtEmitterName(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, _get_somtEmitterName) \
	(somSelf))
#ifndef SOMGD_get_somtEmitterName
    #if (defined(_get_somtEmitterName) || defined(__get_somtEmitterName))
        #undef _get_somtEmitterName
        #undef __get_somtEmitterName
        #define SOMGD_get_somtEmitterName 1
    #else
        #define __get_somtEmitterName SOMTEmitC__get_somtEmitterName
    #endif /* __get_somtEmitterName */
#endif /* SOMGD_get_somtEmitterName */

/*
 * New Method: _set_somtEmitterName
 */
typedef void   (SOMLINK * somTD_SOMTEmitC__set_somtEmitterName)(SOMTEmitC *somSelf,
		string somtEmitterName);
#define somMD_SOMTEmitC__set_somtEmitterName "::SOMTEmitC::somtEmitterName"
#define SOMTEmitC__set_somtEmitterName(somSelf,somtEmitterName) \
    (SOM_Resolve(somSelf, SOMTEmitC, _set_somtEmitterName) \
	(somSelf,somtEmitterName))
#ifndef SOMGD_set_somtEmitterName
    #if (defined(_set_somtEmitterName) || defined(__set_somtEmitterName))
        #undef _set_somtEmitterName
        #undef __set_somtEmitterName
        #define SOMGD_set_somtEmitterName 1
    #else
        #define __set_somtEmitterName SOMTEmitC__set_somtEmitterName
    #endif /* __set_somtEmitterName */
#endif /* SOMGD_set_somtEmitterName */

/*
 * New Method: somtGenerateSections
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtGenerateSections)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtGenerateSections "::SOMTEmitC::somtGenerateSections"
#define SOMTEmitC_somtGenerateSections(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtGenerateSections) \
	(somSelf))
#ifndef SOMGD_somtGenerateSections
    #if (defined(_somtGenerateSections) || defined(__somtGenerateSections))
        #undef _somtGenerateSections
        #undef __somtGenerateSections
        #define SOMGD_somtGenerateSections 1
    #else
        #define _somtGenerateSections SOMTEmitC_somtGenerateSections
    #endif /* _somtGenerateSections */
#endif /* SOMGD_somtGenerateSections */

/*
 * New Method: somtOpenSymbolsFile
 */
typedef FILE*   (SOMLINK * somTD_SOMTEmitC_somtOpenSymbolsFile)(SOMTEmitC *somSelf,
		string file,
		string mode);
#define somMD_SOMTEmitC_somtOpenSymbolsFile "::SOMTEmitC::somtOpenSymbolsFile"
#define SOMTEmitC_somtOpenSymbolsFile(somSelf,file,mode) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtOpenSymbolsFile) \
	(somSelf,file,mode))
#ifndef SOMGD_somtOpenSymbolsFile
    #if (defined(_somtOpenSymbolsFile) || defined(__somtOpenSymbolsFile))
        #undef _somtOpenSymbolsFile
        #undef __somtOpenSymbolsFile
        #define SOMGD_somtOpenSymbolsFile 1
    #else
        #define _somtOpenSymbolsFile SOMTEmitC_somtOpenSymbolsFile
    #endif /* _somtOpenSymbolsFile */
#endif /* SOMGD_somtOpenSymbolsFile */

/*
 * New Method: somtSetPredefinedSymbols
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtSetPredefinedSymbols)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtSetPredefinedSymbols "::SOMTEmitC::somtSetPredefinedSymbols"
#define SOMTEmitC_somtSetPredefinedSymbols(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtSetPredefinedSymbols) \
	(somSelf))
#ifndef SOMGD_somtSetPredefinedSymbols
    #if (defined(_somtSetPredefinedSymbols) || defined(__somtSetPredefinedSymbols))
        #undef _somtSetPredefinedSymbols
        #undef __somtSetPredefinedSymbols
        #define SOMGD_somtSetPredefinedSymbols 1
    #else
        #define _somtSetPredefinedSymbols SOMTEmitC_somtSetPredefinedSymbols
    #endif /* _somtSetPredefinedSymbols */
#endif /* SOMGD_somtSetPredefinedSymbols */

/*
 * New Method: somtFileSymbols
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtFileSymbols)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtFileSymbols "::SOMTEmitC::somtFileSymbols"
#define SOMTEmitC_somtFileSymbols(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtFileSymbols) \
	(somSelf))
#ifndef SOMGD_somtFileSymbols
    #if (defined(_somtFileSymbols) || defined(__somtFileSymbols))
        #undef _somtFileSymbols
        #undef __somtFileSymbols
        #define SOMGD_somtFileSymbols 1
    #else
        #define _somtFileSymbols SOMTEmitC_somtFileSymbols
    #endif /* _somtFileSymbols */
#endif /* SOMGD_somtFileSymbols */

/*
 * New Method: somtEmitProlog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitProlog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitProlog "::SOMTEmitC::somtEmitProlog"
#define SOMTEmitC_somtEmitProlog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitProlog) \
	(somSelf))
#ifndef SOMGD_somtEmitProlog
    #if (defined(_somtEmitProlog) || defined(__somtEmitProlog))
        #undef _somtEmitProlog
        #undef __somtEmitProlog
        #define SOMGD_somtEmitProlog 1
    #else
        #define _somtEmitProlog SOMTEmitC_somtEmitProlog
    #endif /* _somtEmitProlog */
#endif /* SOMGD_somtEmitProlog */

/*
 * New Method: somtEmitBaseIncludesProlog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitBaseIncludesProlog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitBaseIncludesProlog "::SOMTEmitC::somtEmitBaseIncludesProlog"
#define SOMTEmitC_somtEmitBaseIncludesProlog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitBaseIncludesProlog) \
	(somSelf))
#ifndef SOMGD_somtEmitBaseIncludesProlog
    #if (defined(_somtEmitBaseIncludesProlog) || defined(__somtEmitBaseIncludesProlog))
        #undef _somtEmitBaseIncludesProlog
        #undef __somtEmitBaseIncludesProlog
        #define SOMGD_somtEmitBaseIncludesProlog 1
    #else
        #define _somtEmitBaseIncludesProlog SOMTEmitC_somtEmitBaseIncludesProlog
    #endif /* _somtEmitBaseIncludesProlog */
#endif /* SOMGD_somtEmitBaseIncludesProlog */

/*
 * New Method: somtEmitBaseIncludes
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitBaseIncludes)(SOMTEmitC *somSelf,
		SOMTBaseClassEntryC* base);
#define somMD_SOMTEmitC_somtEmitBaseIncludes "::SOMTEmitC::somtEmitBaseIncludes"
#define SOMTEmitC_somtEmitBaseIncludes(somSelf,base) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitBaseIncludes) \
	(somSelf,base))
#ifndef SOMGD_somtEmitBaseIncludes
    #if (defined(_somtEmitBaseIncludes) || defined(__somtEmitBaseIncludes))
        #undef _somtEmitBaseIncludes
        #undef __somtEmitBaseIncludes
        #define SOMGD_somtEmitBaseIncludes 1
    #else
        #define _somtEmitBaseIncludes SOMTEmitC_somtEmitBaseIncludes
    #endif /* _somtEmitBaseIncludes */
#endif /* SOMGD_somtEmitBaseIncludes */

/*
 * New Method: somtEmitBaseIncludesEpilog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitBaseIncludesEpilog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitBaseIncludesEpilog "::SOMTEmitC::somtEmitBaseIncludesEpilog"
#define SOMTEmitC_somtEmitBaseIncludesEpilog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitBaseIncludesEpilog) \
	(somSelf))
#ifndef SOMGD_somtEmitBaseIncludesEpilog
    #if (defined(_somtEmitBaseIncludesEpilog) || defined(__somtEmitBaseIncludesEpilog))
        #undef _somtEmitBaseIncludesEpilog
        #undef __somtEmitBaseIncludesEpilog
        #define SOMGD_somtEmitBaseIncludesEpilog 1
    #else
        #define _somtEmitBaseIncludesEpilog SOMTEmitC_somtEmitBaseIncludesEpilog
    #endif /* _somtEmitBaseIncludesEpilog */
#endif /* SOMGD_somtEmitBaseIncludesEpilog */

/*
 * New Method: somtEmitMetaInclude
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitMetaInclude)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitMetaInclude "::SOMTEmitC::somtEmitMetaInclude"
#define SOMTEmitC_somtEmitMetaInclude(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitMetaInclude) \
	(somSelf))
#ifndef SOMGD_somtEmitMetaInclude
    #if (defined(_somtEmitMetaInclude) || defined(__somtEmitMetaInclude))
        #undef _somtEmitMetaInclude
        #undef __somtEmitMetaInclude
        #define SOMGD_somtEmitMetaInclude 1
    #else
        #define _somtEmitMetaInclude SOMTEmitC_somtEmitMetaInclude
    #endif /* _somtEmitMetaInclude */
#endif /* SOMGD_somtEmitMetaInclude */

/*
 * New Method: somtEmitClass
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitClass)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitClass "::SOMTEmitC::somtEmitClass"
#define SOMTEmitC_somtEmitClass(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitClass) \
	(somSelf))
#ifndef SOMGD_somtEmitClass
    #if (defined(_somtEmitClass) || defined(__somtEmitClass))
        #undef _somtEmitClass
        #undef __somtEmitClass
        #define SOMGD_somtEmitClass 1
    #else
        #define _somtEmitClass SOMTEmitC_somtEmitClass
    #endif /* _somtEmitClass */
#endif /* SOMGD_somtEmitClass */

/*
 * New Method: somtEmitMeta
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitMeta)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitMeta "::SOMTEmitC::somtEmitMeta"
#define SOMTEmitC_somtEmitMeta(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitMeta) \
	(somSelf))
#ifndef SOMGD_somtEmitMeta
    #if (defined(_somtEmitMeta) || defined(__somtEmitMeta))
        #undef _somtEmitMeta
        #undef __somtEmitMeta
        #define SOMGD_somtEmitMeta 1
    #else
        #define _somtEmitMeta SOMTEmitC_somtEmitMeta
    #endif /* _somtEmitMeta */
#endif /* SOMGD_somtEmitMeta */

/*
 * New Method: somtEmitBaseProlog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitBaseProlog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitBaseProlog "::SOMTEmitC::somtEmitBaseProlog"
#define SOMTEmitC_somtEmitBaseProlog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitBaseProlog) \
	(somSelf))
#ifndef SOMGD_somtEmitBaseProlog
    #if (defined(_somtEmitBaseProlog) || defined(__somtEmitBaseProlog))
        #undef _somtEmitBaseProlog
        #undef __somtEmitBaseProlog
        #define SOMGD_somtEmitBaseProlog 1
    #else
        #define _somtEmitBaseProlog SOMTEmitC_somtEmitBaseProlog
    #endif /* _somtEmitBaseProlog */
#endif /* SOMGD_somtEmitBaseProlog */

/*
 * New Method: somtEmitBase
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitBase)(SOMTEmitC *somSelf,
		SOMTBaseClassEntryC* base);
#define somMD_SOMTEmitC_somtEmitBase "::SOMTEmitC::somtEmitBase"
#define SOMTEmitC_somtEmitBase(somSelf,base) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitBase) \
	(somSelf,base))
#ifndef SOMGD_somtEmitBase
    #if (defined(_somtEmitBase) || defined(__somtEmitBase))
        #undef _somtEmitBase
        #undef __somtEmitBase
        #define SOMGD_somtEmitBase 1
    #else
        #define _somtEmitBase SOMTEmitC_somtEmitBase
    #endif /* _somtEmitBase */
#endif /* SOMGD_somtEmitBase */

/*
 * New Method: somtEmitBaseEpilog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitBaseEpilog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitBaseEpilog "::SOMTEmitC::somtEmitBaseEpilog"
#define SOMTEmitC_somtEmitBaseEpilog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitBaseEpilog) \
	(somSelf))
#ifndef SOMGD_somtEmitBaseEpilog
    #if (defined(_somtEmitBaseEpilog) || defined(__somtEmitBaseEpilog))
        #undef _somtEmitBaseEpilog
        #undef __somtEmitBaseEpilog
        #define SOMGD_somtEmitBaseEpilog 1
    #else
        #define _somtEmitBaseEpilog SOMTEmitC_somtEmitBaseEpilog
    #endif /* _somtEmitBaseEpilog */
#endif /* SOMGD_somtEmitBaseEpilog */

/*
 * New Method: somtEmitPassthruProlog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitPassthruProlog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitPassthruProlog "::SOMTEmitC::somtEmitPassthruProlog"
#define SOMTEmitC_somtEmitPassthruProlog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitPassthruProlog) \
	(somSelf))
#ifndef SOMGD_somtEmitPassthruProlog
    #if (defined(_somtEmitPassthruProlog) || defined(__somtEmitPassthruProlog))
        #undef _somtEmitPassthruProlog
        #undef __somtEmitPassthruProlog
        #define SOMGD_somtEmitPassthruProlog 1
    #else
        #define _somtEmitPassthruProlog SOMTEmitC_somtEmitPassthruProlog
    #endif /* _somtEmitPassthruProlog */
#endif /* SOMGD_somtEmitPassthruProlog */

/*
 * New Method: somtEmitPassthru
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitPassthru)(SOMTEmitC *somSelf,
		SOMTPassthruEntryC* entry);
#define somMD_SOMTEmitC_somtEmitPassthru "::SOMTEmitC::somtEmitPassthru"
#define SOMTEmitC_somtEmitPassthru(somSelf,entry) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitPassthru) \
	(somSelf,entry))
#ifndef SOMGD_somtEmitPassthru
    #if (defined(_somtEmitPassthru) || defined(__somtEmitPassthru))
        #undef _somtEmitPassthru
        #undef __somtEmitPassthru
        #define SOMGD_somtEmitPassthru 1
    #else
        #define _somtEmitPassthru SOMTEmitC_somtEmitPassthru
    #endif /* _somtEmitPassthru */
#endif /* SOMGD_somtEmitPassthru */

/*
 * New Method: somtEmitPassthruEpilog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitPassthruEpilog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitPassthruEpilog "::SOMTEmitC::somtEmitPassthruEpilog"
#define SOMTEmitC_somtEmitPassthruEpilog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitPassthruEpilog) \
	(somSelf))
#ifndef SOMGD_somtEmitPassthruEpilog
    #if (defined(_somtEmitPassthruEpilog) || defined(__somtEmitPassthruEpilog))
        #undef _somtEmitPassthruEpilog
        #undef __somtEmitPassthruEpilog
        #define SOMGD_somtEmitPassthruEpilog 1
    #else
        #define _somtEmitPassthruEpilog SOMTEmitC_somtEmitPassthruEpilog
    #endif /* _somtEmitPassthruEpilog */
#endif /* SOMGD_somtEmitPassthruEpilog */

/*
 * New Method: somtEmitRelease
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitRelease)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitRelease "::SOMTEmitC::somtEmitRelease"
#define SOMTEmitC_somtEmitRelease(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitRelease) \
	(somSelf))
#ifndef SOMGD_somtEmitRelease
    #if (defined(_somtEmitRelease) || defined(__somtEmitRelease))
        #undef _somtEmitRelease
        #undef __somtEmitRelease
        #define SOMGD_somtEmitRelease 1
    #else
        #define _somtEmitRelease SOMTEmitC_somtEmitRelease
    #endif /* _somtEmitRelease */
#endif /* SOMGD_somtEmitRelease */

/*
 * New Method: somtEmitDataProlog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitDataProlog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitDataProlog "::SOMTEmitC::somtEmitDataProlog"
#define SOMTEmitC_somtEmitDataProlog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitDataProlog) \
	(somSelf))
#ifndef SOMGD_somtEmitDataProlog
    #if (defined(_somtEmitDataProlog) || defined(__somtEmitDataProlog))
        #undef _somtEmitDataProlog
        #undef __somtEmitDataProlog
        #define SOMGD_somtEmitDataProlog 1
    #else
        #define _somtEmitDataProlog SOMTEmitC_somtEmitDataProlog
    #endif /* _somtEmitDataProlog */
#endif /* SOMGD_somtEmitDataProlog */

/*
 * New Method: somtEmitData
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitData)(SOMTEmitC *somSelf,
		SOMTDataEntryC* entry);
#define somMD_SOMTEmitC_somtEmitData "::SOMTEmitC::somtEmitData"
#define SOMTEmitC_somtEmitData(somSelf,entry) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitData) \
	(somSelf,entry))
#ifndef SOMGD_somtEmitData
    #if (defined(_somtEmitData) || defined(__somtEmitData))
        #undef _somtEmitData
        #undef __somtEmitData
        #define SOMGD_somtEmitData 1
    #else
        #define _somtEmitData SOMTEmitC_somtEmitData
    #endif /* _somtEmitData */
#endif /* SOMGD_somtEmitData */

/*
 * New Method: somtEmitDataEpilog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitDataEpilog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitDataEpilog "::SOMTEmitC::somtEmitDataEpilog"
#define SOMTEmitC_somtEmitDataEpilog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitDataEpilog) \
	(somSelf))
#ifndef SOMGD_somtEmitDataEpilog
    #if (defined(_somtEmitDataEpilog) || defined(__somtEmitDataEpilog))
        #undef _somtEmitDataEpilog
        #undef __somtEmitDataEpilog
        #define SOMGD_somtEmitDataEpilog 1
    #else
        #define _somtEmitDataEpilog SOMTEmitC_somtEmitDataEpilog
    #endif /* _somtEmitDataEpilog */
#endif /* SOMGD_somtEmitDataEpilog */

/*
 * New Method: somtEmitAttributeProlog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitAttributeProlog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitAttributeProlog "::SOMTEmitC::somtEmitAttributeProlog"
#define SOMTEmitC_somtEmitAttributeProlog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitAttributeProlog) \
	(somSelf))
#ifndef SOMGD_somtEmitAttributeProlog
    #if (defined(_somtEmitAttributeProlog) || defined(__somtEmitAttributeProlog))
        #undef _somtEmitAttributeProlog
        #undef __somtEmitAttributeProlog
        #define SOMGD_somtEmitAttributeProlog 1
    #else
        #define _somtEmitAttributeProlog SOMTEmitC_somtEmitAttributeProlog
    #endif /* _somtEmitAttributeProlog */
#endif /* SOMGD_somtEmitAttributeProlog */

/*
 * New Method: somtEmitAttribute
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitAttribute)(SOMTEmitC *somSelf,
		SOMTAttributeEntryC* att);
#define somMD_SOMTEmitC_somtEmitAttribute "::SOMTEmitC::somtEmitAttribute"
#define SOMTEmitC_somtEmitAttribute(somSelf,att) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitAttribute) \
	(somSelf,att))
#ifndef SOMGD_somtEmitAttribute
    #if (defined(_somtEmitAttribute) || defined(__somtEmitAttribute))
        #undef _somtEmitAttribute
        #undef __somtEmitAttribute
        #define SOMGD_somtEmitAttribute 1
    #else
        #define _somtEmitAttribute SOMTEmitC_somtEmitAttribute
    #endif /* _somtEmitAttribute */
#endif /* SOMGD_somtEmitAttribute */

/*
 * New Method: somtEmitAttributeEpilog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitAttributeEpilog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitAttributeEpilog "::SOMTEmitC::somtEmitAttributeEpilog"
#define SOMTEmitC_somtEmitAttributeEpilog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitAttributeEpilog) \
	(somSelf))
#ifndef SOMGD_somtEmitAttributeEpilog
    #if (defined(_somtEmitAttributeEpilog) || defined(__somtEmitAttributeEpilog))
        #undef _somtEmitAttributeEpilog
        #undef __somtEmitAttributeEpilog
        #define SOMGD_somtEmitAttributeEpilog 1
    #else
        #define _somtEmitAttributeEpilog SOMTEmitC_somtEmitAttributeEpilog
    #endif /* _somtEmitAttributeEpilog */
#endif /* SOMGD_somtEmitAttributeEpilog */

/*
 * New Method: somtEmitConstantProlog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitConstantProlog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitConstantProlog "::SOMTEmitC::somtEmitConstantProlog"
#define SOMTEmitC_somtEmitConstantProlog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitConstantProlog) \
	(somSelf))
#ifndef SOMGD_somtEmitConstantProlog
    #if (defined(_somtEmitConstantProlog) || defined(__somtEmitConstantProlog))
        #undef _somtEmitConstantProlog
        #undef __somtEmitConstantProlog
        #define SOMGD_somtEmitConstantProlog 1
    #else
        #define _somtEmitConstantProlog SOMTEmitC_somtEmitConstantProlog
    #endif /* _somtEmitConstantProlog */
#endif /* SOMGD_somtEmitConstantProlog */

/*
 * New Method: somtEmitConstant
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitConstant)(SOMTEmitC *somSelf,
		SOMTConstEntryC* con);
#define somMD_SOMTEmitC_somtEmitConstant "::SOMTEmitC::somtEmitConstant"
#define SOMTEmitC_somtEmitConstant(somSelf,con) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitConstant) \
	(somSelf,con))
#ifndef SOMGD_somtEmitConstant
    #if (defined(_somtEmitConstant) || defined(__somtEmitConstant))
        #undef _somtEmitConstant
        #undef __somtEmitConstant
        #define SOMGD_somtEmitConstant 1
    #else
        #define _somtEmitConstant SOMTEmitC_somtEmitConstant
    #endif /* _somtEmitConstant */
#endif /* SOMGD_somtEmitConstant */

/*
 * New Method: somtEmitConstantEpilog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitConstantEpilog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitConstantEpilog "::SOMTEmitC::somtEmitConstantEpilog"
#define SOMTEmitC_somtEmitConstantEpilog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitConstantEpilog) \
	(somSelf))
#ifndef SOMGD_somtEmitConstantEpilog
    #if (defined(_somtEmitConstantEpilog) || defined(__somtEmitConstantEpilog))
        #undef _somtEmitConstantEpilog
        #undef __somtEmitConstantEpilog
        #define SOMGD_somtEmitConstantEpilog 1
    #else
        #define _somtEmitConstantEpilog SOMTEmitC_somtEmitConstantEpilog
    #endif /* _somtEmitConstantEpilog */
#endif /* SOMGD_somtEmitConstantEpilog */

/*
 * New Method: somtEmitTypedefProlog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitTypedefProlog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitTypedefProlog "::SOMTEmitC::somtEmitTypedefProlog"
#define SOMTEmitC_somtEmitTypedefProlog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitTypedefProlog) \
	(somSelf))
#ifndef SOMGD_somtEmitTypedefProlog
    #if (defined(_somtEmitTypedefProlog) || defined(__somtEmitTypedefProlog))
        #undef _somtEmitTypedefProlog
        #undef __somtEmitTypedefProlog
        #define SOMGD_somtEmitTypedefProlog 1
    #else
        #define _somtEmitTypedefProlog SOMTEmitC_somtEmitTypedefProlog
    #endif /* _somtEmitTypedefProlog */
#endif /* SOMGD_somtEmitTypedefProlog */

/*
 * New Method: somtEmitTypedef
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitTypedef)(SOMTEmitC *somSelf,
		SOMTTypedefEntryC* td);
#define somMD_SOMTEmitC_somtEmitTypedef "::SOMTEmitC::somtEmitTypedef"
#define SOMTEmitC_somtEmitTypedef(somSelf,td) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitTypedef) \
	(somSelf,td))
#ifndef SOMGD_somtEmitTypedef
    #if (defined(_somtEmitTypedef) || defined(__somtEmitTypedef))
        #undef _somtEmitTypedef
        #undef __somtEmitTypedef
        #define SOMGD_somtEmitTypedef 1
    #else
        #define _somtEmitTypedef SOMTEmitC_somtEmitTypedef
    #endif /* _somtEmitTypedef */
#endif /* SOMGD_somtEmitTypedef */

/*
 * New Method: somtEmitTypedefEpilog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitTypedefEpilog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitTypedefEpilog "::SOMTEmitC::somtEmitTypedefEpilog"
#define SOMTEmitC_somtEmitTypedefEpilog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitTypedefEpilog) \
	(somSelf))
#ifndef SOMGD_somtEmitTypedefEpilog
    #if (defined(_somtEmitTypedefEpilog) || defined(__somtEmitTypedefEpilog))
        #undef _somtEmitTypedefEpilog
        #undef __somtEmitTypedefEpilog
        #define SOMGD_somtEmitTypedefEpilog 1
    #else
        #define _somtEmitTypedefEpilog SOMTEmitC_somtEmitTypedefEpilog
    #endif /* _somtEmitTypedefEpilog */
#endif /* SOMGD_somtEmitTypedefEpilog */

/*
 * New Method: somtEmitStructProlog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitStructProlog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitStructProlog "::SOMTEmitC::somtEmitStructProlog"
#define SOMTEmitC_somtEmitStructProlog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitStructProlog) \
	(somSelf))
#ifndef SOMGD_somtEmitStructProlog
    #if (defined(_somtEmitStructProlog) || defined(__somtEmitStructProlog))
        #undef _somtEmitStructProlog
        #undef __somtEmitStructProlog
        #define SOMGD_somtEmitStructProlog 1
    #else
        #define _somtEmitStructProlog SOMTEmitC_somtEmitStructProlog
    #endif /* _somtEmitStructProlog */
#endif /* SOMGD_somtEmitStructProlog */

/*
 * New Method: somtEmitStruct
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitStruct)(SOMTEmitC *somSelf,
		SOMTStructEntryC* struc);
#define somMD_SOMTEmitC_somtEmitStruct "::SOMTEmitC::somtEmitStruct"
#define SOMTEmitC_somtEmitStruct(somSelf,struc) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitStruct) \
	(somSelf,struc))
#ifndef SOMGD_somtEmitStruct
    #if (defined(_somtEmitStruct) || defined(__somtEmitStruct))
        #undef _somtEmitStruct
        #undef __somtEmitStruct
        #define SOMGD_somtEmitStruct 1
    #else
        #define _somtEmitStruct SOMTEmitC_somtEmitStruct
    #endif /* _somtEmitStruct */
#endif /* SOMGD_somtEmitStruct */

/*
 * New Method: somtEmitStructEpilog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitStructEpilog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitStructEpilog "::SOMTEmitC::somtEmitStructEpilog"
#define SOMTEmitC_somtEmitStructEpilog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitStructEpilog) \
	(somSelf))
#ifndef SOMGD_somtEmitStructEpilog
    #if (defined(_somtEmitStructEpilog) || defined(__somtEmitStructEpilog))
        #undef _somtEmitStructEpilog
        #undef __somtEmitStructEpilog
        #define SOMGD_somtEmitStructEpilog 1
    #else
        #define _somtEmitStructEpilog SOMTEmitC_somtEmitStructEpilog
    #endif /* _somtEmitStructEpilog */
#endif /* SOMGD_somtEmitStructEpilog */

/*
 * New Method: somtEmitUnionProlog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitUnionProlog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitUnionProlog "::SOMTEmitC::somtEmitUnionProlog"
#define SOMTEmitC_somtEmitUnionProlog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitUnionProlog) \
	(somSelf))
#ifndef SOMGD_somtEmitUnionProlog
    #if (defined(_somtEmitUnionProlog) || defined(__somtEmitUnionProlog))
        #undef _somtEmitUnionProlog
        #undef __somtEmitUnionProlog
        #define SOMGD_somtEmitUnionProlog 1
    #else
        #define _somtEmitUnionProlog SOMTEmitC_somtEmitUnionProlog
    #endif /* _somtEmitUnionProlog */
#endif /* SOMGD_somtEmitUnionProlog */

/*
 * New Method: somtEmitUnion
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitUnion)(SOMTEmitC *somSelf,
		SOMTUnionEntryC* un);
#define somMD_SOMTEmitC_somtEmitUnion "::SOMTEmitC::somtEmitUnion"
#define SOMTEmitC_somtEmitUnion(somSelf,un) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitUnion) \
	(somSelf,un))
#ifndef SOMGD_somtEmitUnion
    #if (defined(_somtEmitUnion) || defined(__somtEmitUnion))
        #undef _somtEmitUnion
        #undef __somtEmitUnion
        #define SOMGD_somtEmitUnion 1
    #else
        #define _somtEmitUnion SOMTEmitC_somtEmitUnion
    #endif /* _somtEmitUnion */
#endif /* SOMGD_somtEmitUnion */

/*
 * New Method: somtEmitUnionEpilog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitUnionEpilog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitUnionEpilog "::SOMTEmitC::somtEmitUnionEpilog"
#define SOMTEmitC_somtEmitUnionEpilog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitUnionEpilog) \
	(somSelf))
#ifndef SOMGD_somtEmitUnionEpilog
    #if (defined(_somtEmitUnionEpilog) || defined(__somtEmitUnionEpilog))
        #undef _somtEmitUnionEpilog
        #undef __somtEmitUnionEpilog
        #define SOMGD_somtEmitUnionEpilog 1
    #else
        #define _somtEmitUnionEpilog SOMTEmitC_somtEmitUnionEpilog
    #endif /* _somtEmitUnionEpilog */
#endif /* SOMGD_somtEmitUnionEpilog */

/*
 * New Method: somtEmitEnumProlog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitEnumProlog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitEnumProlog "::SOMTEmitC::somtEmitEnumProlog"
#define SOMTEmitC_somtEmitEnumProlog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitEnumProlog) \
	(somSelf))
#ifndef SOMGD_somtEmitEnumProlog
    #if (defined(_somtEmitEnumProlog) || defined(__somtEmitEnumProlog))
        #undef _somtEmitEnumProlog
        #undef __somtEmitEnumProlog
        #define SOMGD_somtEmitEnumProlog 1
    #else
        #define _somtEmitEnumProlog SOMTEmitC_somtEmitEnumProlog
    #endif /* _somtEmitEnumProlog */
#endif /* SOMGD_somtEmitEnumProlog */

/*
 * New Method: somtEmitEnum
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitEnum)(SOMTEmitC *somSelf,
		SOMTEnumEntryC* en);
#define somMD_SOMTEmitC_somtEmitEnum "::SOMTEmitC::somtEmitEnum"
#define SOMTEmitC_somtEmitEnum(somSelf,en) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitEnum) \
	(somSelf,en))
#ifndef SOMGD_somtEmitEnum
    #if (defined(_somtEmitEnum) || defined(__somtEmitEnum))
        #undef _somtEmitEnum
        #undef __somtEmitEnum
        #define SOMGD_somtEmitEnum 1
    #else
        #define _somtEmitEnum SOMTEmitC_somtEmitEnum
    #endif /* _somtEmitEnum */
#endif /* SOMGD_somtEmitEnum */

/*
 * New Method: somtEmitEnumEpilog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitEnumEpilog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitEnumEpilog "::SOMTEmitC::somtEmitEnumEpilog"
#define SOMTEmitC_somtEmitEnumEpilog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitEnumEpilog) \
	(somSelf))
#ifndef SOMGD_somtEmitEnumEpilog
    #if (defined(_somtEmitEnumEpilog) || defined(__somtEmitEnumEpilog))
        #undef _somtEmitEnumEpilog
        #undef __somtEmitEnumEpilog
        #define SOMGD_somtEmitEnumEpilog 1
    #else
        #define _somtEmitEnumEpilog SOMTEmitC_somtEmitEnumEpilog
    #endif /* _somtEmitEnumEpilog */
#endif /* SOMGD_somtEmitEnumEpilog */

/*
 * New Method: somtEmitInterfaceProlog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitInterfaceProlog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitInterfaceProlog "::SOMTEmitC::somtEmitInterfaceProlog"
#define SOMTEmitC_somtEmitInterfaceProlog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitInterfaceProlog) \
	(somSelf))
#ifndef SOMGD_somtEmitInterfaceProlog
    #if (defined(_somtEmitInterfaceProlog) || defined(__somtEmitInterfaceProlog))
        #undef _somtEmitInterfaceProlog
        #undef __somtEmitInterfaceProlog
        #define SOMGD_somtEmitInterfaceProlog 1
    #else
        #define _somtEmitInterfaceProlog SOMTEmitC_somtEmitInterfaceProlog
    #endif /* _somtEmitInterfaceProlog */
#endif /* SOMGD_somtEmitInterfaceProlog */

/*
 * New Method: somtEmitInterface
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitInterface)(SOMTEmitC *somSelf,
		SOMTClassEntryC* intfc);
#define somMD_SOMTEmitC_somtEmitInterface "::SOMTEmitC::somtEmitInterface"
#define SOMTEmitC_somtEmitInterface(somSelf,intfc) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitInterface) \
	(somSelf,intfc))
#ifndef SOMGD_somtEmitInterface
    #if (defined(_somtEmitInterface) || defined(__somtEmitInterface))
        #undef _somtEmitInterface
        #undef __somtEmitInterface
        #define SOMGD_somtEmitInterface 1
    #else
        #define _somtEmitInterface SOMTEmitC_somtEmitInterface
    #endif /* _somtEmitInterface */
#endif /* SOMGD_somtEmitInterface */

/*
 * New Method: somtEmitInterfaceEpilog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitInterfaceEpilog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitInterfaceEpilog "::SOMTEmitC::somtEmitInterfaceEpilog"
#define SOMTEmitC_somtEmitInterfaceEpilog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitInterfaceEpilog) \
	(somSelf))
#ifndef SOMGD_somtEmitInterfaceEpilog
    #if (defined(_somtEmitInterfaceEpilog) || defined(__somtEmitInterfaceEpilog))
        #undef _somtEmitInterfaceEpilog
        #undef __somtEmitInterfaceEpilog
        #define SOMGD_somtEmitInterfaceEpilog 1
    #else
        #define _somtEmitInterfaceEpilog SOMTEmitC_somtEmitInterfaceEpilog
    #endif /* _somtEmitInterfaceEpilog */
#endif /* SOMGD_somtEmitInterfaceEpilog */

/*
 * New Method: somtEmitModuleProlog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitModuleProlog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitModuleProlog "::SOMTEmitC::somtEmitModuleProlog"
#define SOMTEmitC_somtEmitModuleProlog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitModuleProlog) \
	(somSelf))
#ifndef SOMGD_somtEmitModuleProlog
    #if (defined(_somtEmitModuleProlog) || defined(__somtEmitModuleProlog))
        #undef _somtEmitModuleProlog
        #undef __somtEmitModuleProlog
        #define SOMGD_somtEmitModuleProlog 1
    #else
        #define _somtEmitModuleProlog SOMTEmitC_somtEmitModuleProlog
    #endif /* _somtEmitModuleProlog */
#endif /* SOMGD_somtEmitModuleProlog */

/*
 * New Method: somtEmitModule
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitModule)(SOMTEmitC *somSelf,
		SOMTModuleEntryC* mod);
#define somMD_SOMTEmitC_somtEmitModule "::SOMTEmitC::somtEmitModule"
#define SOMTEmitC_somtEmitModule(somSelf,mod) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitModule) \
	(somSelf,mod))
#ifndef SOMGD_somtEmitModule
    #if (defined(_somtEmitModule) || defined(__somtEmitModule))
        #undef _somtEmitModule
        #undef __somtEmitModule
        #define SOMGD_somtEmitModule 1
    #else
        #define _somtEmitModule SOMTEmitC_somtEmitModule
    #endif /* _somtEmitModule */
#endif /* SOMGD_somtEmitModule */

/*
 * New Method: somtEmitModuleEpilog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitModuleEpilog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitModuleEpilog "::SOMTEmitC::somtEmitModuleEpilog"
#define SOMTEmitC_somtEmitModuleEpilog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitModuleEpilog) \
	(somSelf))
#ifndef SOMGD_somtEmitModuleEpilog
    #if (defined(_somtEmitModuleEpilog) || defined(__somtEmitModuleEpilog))
        #undef _somtEmitModuleEpilog
        #undef __somtEmitModuleEpilog
        #define SOMGD_somtEmitModuleEpilog 1
    #else
        #define _somtEmitModuleEpilog SOMTEmitC_somtEmitModuleEpilog
    #endif /* _somtEmitModuleEpilog */
#endif /* SOMGD_somtEmitModuleEpilog */

/*
 * New Method: somtEmitMethodsProlog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitMethodsProlog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitMethodsProlog "::SOMTEmitC::somtEmitMethodsProlog"
#define SOMTEmitC_somtEmitMethodsProlog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitMethodsProlog) \
	(somSelf))
#ifndef SOMGD_somtEmitMethodsProlog
    #if (defined(_somtEmitMethodsProlog) || defined(__somtEmitMethodsProlog))
        #undef _somtEmitMethodsProlog
        #undef __somtEmitMethodsProlog
        #define SOMGD_somtEmitMethodsProlog 1
    #else
        #define _somtEmitMethodsProlog SOMTEmitC_somtEmitMethodsProlog
    #endif /* _somtEmitMethodsProlog */
#endif /* SOMGD_somtEmitMethodsProlog */

/*
 * New Method: somtEmitMethods
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitMethods)(SOMTEmitC *somSelf,
		SOMTMethodEntryC* method);
#define somMD_SOMTEmitC_somtEmitMethods "::SOMTEmitC::somtEmitMethods"
#define SOMTEmitC_somtEmitMethods(somSelf,method) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitMethods) \
	(somSelf,method))
#ifndef SOMGD_somtEmitMethods
    #if (defined(_somtEmitMethods) || defined(__somtEmitMethods))
        #undef _somtEmitMethods
        #undef __somtEmitMethods
        #define SOMGD_somtEmitMethods 1
    #else
        #define _somtEmitMethods SOMTEmitC_somtEmitMethods
    #endif /* _somtEmitMethods */
#endif /* SOMGD_somtEmitMethods */

/*
 * New Method: somtEmitMethodsEpilog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitMethodsEpilog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitMethodsEpilog "::SOMTEmitC::somtEmitMethodsEpilog"
#define SOMTEmitC_somtEmitMethodsEpilog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitMethodsEpilog) \
	(somSelf))
#ifndef SOMGD_somtEmitMethodsEpilog
    #if (defined(_somtEmitMethodsEpilog) || defined(__somtEmitMethodsEpilog))
        #undef _somtEmitMethodsEpilog
        #undef __somtEmitMethodsEpilog
        #define SOMGD_somtEmitMethodsEpilog 1
    #else
        #define _somtEmitMethodsEpilog SOMTEmitC_somtEmitMethodsEpilog
    #endif /* _somtEmitMethodsEpilog */
#endif /* SOMGD_somtEmitMethodsEpilog */

/*
 * New Method: somtEmitMethod
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitMethod)(SOMTEmitC *somSelf,
		SOMTMethodEntryC* entry);
#define somMD_SOMTEmitC_somtEmitMethod "::SOMTEmitC::somtEmitMethod"
#define SOMTEmitC_somtEmitMethod(somSelf,entry) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitMethod) \
	(somSelf,entry))
#ifndef SOMGD_somtEmitMethod
    #if (defined(_somtEmitMethod) || defined(__somtEmitMethod))
        #undef _somtEmitMethod
        #undef __somtEmitMethod
        #define SOMGD_somtEmitMethod 1
    #else
        #define _somtEmitMethod SOMTEmitC_somtEmitMethod
    #endif /* _somtEmitMethod */
#endif /* SOMGD_somtEmitMethod */

/*
 * New Method: somtEmitEpilog
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitEpilog)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtEmitEpilog "::SOMTEmitC::somtEmitEpilog"
#define SOMTEmitC_somtEmitEpilog(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitEpilog) \
	(somSelf))
#ifndef SOMGD_somtEmitEpilog
    #if (defined(_somtEmitEpilog) || defined(__somtEmitEpilog))
        #undef _somtEmitEpilog
        #undef __somtEmitEpilog
        #define SOMGD_somtEmitEpilog 1
    #else
        #define _somtEmitEpilog SOMTEmitC_somtEmitEpilog
    #endif /* _somtEmitEpilog */
#endif /* SOMGD_somtEmitEpilog */

/*
 * New Method: somtScanBases
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtScanBases)(SOMTEmitC *somSelf,
		string prolog,
		string each,
		string epilog);
#define somMD_SOMTEmitC_somtScanBases "::SOMTEmitC::somtScanBases"
#define SOMTEmitC_somtScanBases(somSelf,prolog,each,epilog) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtScanBases) \
	(somSelf,prolog,each,epilog))
#ifndef SOMGD_somtScanBases
    #if (defined(_somtScanBases) || defined(__somtScanBases))
        #undef _somtScanBases
        #undef __somtScanBases
        #define SOMGD_somtScanBases 1
    #else
        #define _somtScanBases SOMTEmitC_somtScanBases
    #endif /* _somtScanBases */
#endif /* SOMGD_somtScanBases */

/*
 * New Method: somtCheckVisibility
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtCheckVisibility)(SOMTEmitC *somSelf,
		SOMTMethodEntryC* entry);
#define somMD_SOMTEmitC_somtCheckVisibility "::SOMTEmitC::somtCheckVisibility"
#define SOMTEmitC_somtCheckVisibility(somSelf,entry) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtCheckVisibility) \
	(somSelf,entry))
#ifndef SOMGD_somtCheckVisibility
    #if (defined(_somtCheckVisibility) || defined(__somtCheckVisibility))
        #undef _somtCheckVisibility
        #undef __somtCheckVisibility
        #define SOMGD_somtCheckVisibility 1
    #else
        #define _somtCheckVisibility SOMTEmitC_somtCheckVisibility
    #endif /* _somtCheckVisibility */
#endif /* SOMGD_somtCheckVisibility */

/*
 * New Method: somtNew
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtNew)(SOMTEmitC *somSelf,
		SOMTMethodEntryC* entry);
#define somMD_SOMTEmitC_somtNew "::SOMTEmitC::somtNew"
#define SOMTEmitC_somtNew(somSelf,entry) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtNew) \
	(somSelf,entry))
#ifndef SOMGD_somtNew
    #if (defined(_somtNew) || defined(__somtNew))
        #undef _somtNew
        #undef __somtNew
        #define SOMGD_somtNew 1
    #else
        #define _somtNew SOMTEmitC_somtNew
    #endif /* _somtNew */
#endif /* SOMGD_somtNew */

/*
 * New Method: somtImplemented
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtImplemented)(SOMTEmitC *somSelf,
		SOMTMethodEntryC* entry);
#define somMD_SOMTEmitC_somtImplemented "::SOMTEmitC::somtImplemented"
#define SOMTEmitC_somtImplemented(somSelf,entry) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtImplemented) \
	(somSelf,entry))
#ifndef SOMGD_somtImplemented
    #if (defined(_somtImplemented) || defined(__somtImplemented))
        #undef _somtImplemented
        #undef __somtImplemented
        #define SOMGD_somtImplemented 1
    #else
        #define _somtImplemented SOMTEmitC_somtImplemented
    #endif /* _somtImplemented */
#endif /* SOMGD_somtImplemented */

/*
 * New Method: somtOverridden
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtOverridden)(SOMTEmitC *somSelf,
		SOMTMethodEntryC* entry);
#define somMD_SOMTEmitC_somtOverridden "::SOMTEmitC::somtOverridden"
#define SOMTEmitC_somtOverridden(somSelf,entry) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtOverridden) \
	(somSelf,entry))
#ifndef SOMGD_somtOverridden
    #if (defined(_somtOverridden) || defined(__somtOverridden))
        #undef _somtOverridden
        #undef __somtOverridden
        #define SOMGD_somtOverridden 1
    #else
        #define _somtOverridden SOMTEmitC_somtOverridden
    #endif /* _somtOverridden */
#endif /* SOMGD_somtOverridden */

/*
 * New Method: somtInherited
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtInherited)(SOMTEmitC *somSelf,
		SOMTMethodEntryC* entry);
#define somMD_SOMTEmitC_somtInherited "::SOMTEmitC::somtInherited"
#define SOMTEmitC_somtInherited(somSelf,entry) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtInherited) \
	(somSelf,entry))
#ifndef SOMGD_somtInherited
    #if (defined(_somtInherited) || defined(__somtInherited))
        #undef _somtInherited
        #undef __somtInherited
        #define SOMGD_somtInherited 1
    #else
        #define _somtInherited SOMTEmitC_somtInherited
    #endif /* _somtInherited */
#endif /* SOMGD_somtInherited */

/*
 * New Method: somtAllVisible
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtAllVisible)(SOMTEmitC *somSelf,
		SOMTMethodEntryC* entry);
#define somMD_SOMTEmitC_somtAllVisible "::SOMTEmitC::somtAllVisible"
#define SOMTEmitC_somtAllVisible(somSelf,entry) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtAllVisible) \
	(somSelf,entry))
#ifndef SOMGD_somtAllVisible
    #if (defined(_somtAllVisible) || defined(__somtAllVisible))
        #undef _somtAllVisible
        #undef __somtAllVisible
        #define SOMGD_somtAllVisible 1
    #else
        #define _somtAllVisible SOMTEmitC_somtAllVisible
    #endif /* _somtAllVisible */
#endif /* SOMGD_somtAllVisible */

/*
 * New Method: somtAll
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtAll)(SOMTEmitC *somSelf,
		SOMTMethodEntryC* entry);
#define somMD_SOMTEmitC_somtAll "::SOMTEmitC::somtAll"
#define SOMTEmitC_somtAll(somSelf,entry) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtAll) \
	(somSelf,entry))
#ifndef SOMGD_somtAll
    #if (defined(_somtAll) || defined(__somtAll))
        #undef _somtAll
        #undef __somtAll
        #define SOMGD_somtAll 1
    #else
        #define _somtAll SOMTEmitC_somtAll
    #endif /* _somtAll */
#endif /* SOMGD_somtAll */

/*
 * New Method: somtNewNoProc
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtNewNoProc)(SOMTEmitC *somSelf,
		SOMTEntryC* entry);
#define somMD_SOMTEmitC_somtNewNoProc "::SOMTEmitC::somtNewNoProc"
#define SOMTEmitC_somtNewNoProc(somSelf,entry) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtNewNoProc) \
	(somSelf,entry))
#ifndef SOMGD_somtNewNoProc
    #if (defined(_somtNewNoProc) || defined(__somtNewNoProc))
        #undef _somtNewNoProc
        #undef __somtNewNoProc
        #define SOMGD_somtNewNoProc 1
    #else
        #define _somtNewNoProc SOMTEmitC_somtNewNoProc
    #endif /* _somtNewNoProc */
#endif /* SOMGD_somtNewNoProc */

/*
 * New Method: somtPrivOrPub
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtPrivOrPub)(SOMTEmitC *somSelf,
		SOMTEntryC* entry);
#define somMD_SOMTEmitC_somtPrivOrPub "::SOMTEmitC::somtPrivOrPub"
#define SOMTEmitC_somtPrivOrPub(somSelf,entry) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtPrivOrPub) \
	(somSelf,entry))
#ifndef SOMGD_somtPrivOrPub
    #if (defined(_somtPrivOrPub) || defined(__somtPrivOrPub))
        #undef _somtPrivOrPub
        #undef __somtPrivOrPub
        #define SOMGD_somtPrivOrPub 1
    #else
        #define _somtPrivOrPub SOMTEmitC_somtPrivOrPub
    #endif /* _somtPrivOrPub */
#endif /* SOMGD_somtPrivOrPub */

/*
 * New Method: somtNewProc
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtNewProc)(SOMTEmitC *somSelf,
		SOMTEntryC* entry);
#define somMD_SOMTEmitC_somtNewProc "::SOMTEmitC::somtNewProc"
#define SOMTEmitC_somtNewProc(somSelf,entry) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtNewProc) \
	(somSelf,entry))
#ifndef SOMGD_somtNewProc
    #if (defined(_somtNewProc) || defined(__somtNewProc))
        #undef _somtNewProc
        #undef __somtNewProc
        #define SOMGD_somtNewProc 1
    #else
        #define _somtNewProc SOMTEmitC_somtNewProc
    #endif /* _somtNewProc */
#endif /* SOMGD_somtNewProc */

/*
 * New Method: somtLink
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtLink)(SOMTEmitC *somSelf,
		SOMTEntryC* entry);
#define somMD_SOMTEmitC_somtLink "::SOMTEmitC::somtLink"
#define SOMTEmitC_somtLink(somSelf,entry) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtLink) \
	(somSelf,entry))
#ifndef SOMGD_somtLink
    #if (defined(_somtLink) || defined(__somtLink))
        #undef _somtLink
        #undef __somtLink
        #define SOMGD_somtLink 1
    #else
        #define _somtLink SOMTEmitC_somtLink
    #endif /* _somtLink */
#endif /* SOMGD_somtLink */

/*
 * New Method: somtVA
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtVA)(SOMTEmitC *somSelf,
		SOMTEntryC* entry);
#define somMD_SOMTEmitC_somtVA "::SOMTEmitC::somtVA"
#define SOMTEmitC_somtVA(somSelf,entry) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtVA) \
	(somSelf,entry))
#ifndef SOMGD_somtVA
    #if (defined(_somtVA) || defined(__somtVA))
        #undef _somtVA
        #undef __somtVA
        #define SOMGD_somtVA 1
    #else
        #define _somtVA SOMTEmitC_somtVA
    #endif /* _somtVA */
#endif /* SOMGD_somtVA */

/*
 * New Method: somtScanMethods
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtScanMethods)(SOMTEmitC *somSelf,
		string filter,
		string prolog,
		string each,
		string epilog,
		boolean forceProlog);
#define somMD_SOMTEmitC_somtScanMethods "::SOMTEmitC::somtScanMethods"
#define SOMTEmitC_somtScanMethods(somSelf,filter,prolog,each,epilog,forceProlog) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtScanMethods) \
	(somSelf,filter,prolog,each,epilog,forceProlog))
#ifndef SOMGD_somtScanMethods
    #if (defined(_somtScanMethods) || defined(__somtScanMethods))
        #undef _somtScanMethods
        #undef __somtScanMethods
        #define SOMGD_somtScanMethods 1
    #else
        #define _somtScanMethods SOMTEmitC_somtScanMethods
    #endif /* _somtScanMethods */
#endif /* SOMGD_somtScanMethods */

/*
 * New Method: somtScanConstants
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtScanConstants)(SOMTEmitC *somSelf,
		string prolog,
		string each,
		string epilog);
#define somMD_SOMTEmitC_somtScanConstants "::SOMTEmitC::somtScanConstants"
#define SOMTEmitC_somtScanConstants(somSelf,prolog,each,epilog) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtScanConstants) \
	(somSelf,prolog,each,epilog))
#ifndef SOMGD_somtScanConstants
    #if (defined(_somtScanConstants) || defined(__somtScanConstants))
        #undef _somtScanConstants
        #undef __somtScanConstants
        #define SOMGD_somtScanConstants 1
    #else
        #define _somtScanConstants SOMTEmitC_somtScanConstants
    #endif /* _somtScanConstants */
#endif /* SOMGD_somtScanConstants */

/*
 * New Method: somtScanTypedefs
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtScanTypedefs)(SOMTEmitC *somSelf,
		string prolog,
		string each,
		string epilog);
#define somMD_SOMTEmitC_somtScanTypedefs "::SOMTEmitC::somtScanTypedefs"
#define SOMTEmitC_somtScanTypedefs(somSelf,prolog,each,epilog) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtScanTypedefs) \
	(somSelf,prolog,each,epilog))
#ifndef SOMGD_somtScanTypedefs
    #if (defined(_somtScanTypedefs) || defined(__somtScanTypedefs))
        #undef _somtScanTypedefs
        #undef __somtScanTypedefs
        #define SOMGD_somtScanTypedefs 1
    #else
        #define _somtScanTypedefs SOMTEmitC_somtScanTypedefs
    #endif /* _somtScanTypedefs */
#endif /* SOMGD_somtScanTypedefs */

/*
 * New Method: somtScanStructs
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtScanStructs)(SOMTEmitC *somSelf,
		string prolog,
		string each,
		string epilog);
#define somMD_SOMTEmitC_somtScanStructs "::SOMTEmitC::somtScanStructs"
#define SOMTEmitC_somtScanStructs(somSelf,prolog,each,epilog) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtScanStructs) \
	(somSelf,prolog,each,epilog))
#ifndef SOMGD_somtScanStructs
    #if (defined(_somtScanStructs) || defined(__somtScanStructs))
        #undef _somtScanStructs
        #undef __somtScanStructs
        #define SOMGD_somtScanStructs 1
    #else
        #define _somtScanStructs SOMTEmitC_somtScanStructs
    #endif /* _somtScanStructs */
#endif /* SOMGD_somtScanStructs */

/*
 * New Method: somtScanUnions
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtScanUnions)(SOMTEmitC *somSelf,
		string prolog,
		string each,
		string epilog);
#define somMD_SOMTEmitC_somtScanUnions "::SOMTEmitC::somtScanUnions"
#define SOMTEmitC_somtScanUnions(somSelf,prolog,each,epilog) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtScanUnions) \
	(somSelf,prolog,each,epilog))
#ifndef SOMGD_somtScanUnions
    #if (defined(_somtScanUnions) || defined(__somtScanUnions))
        #undef _somtScanUnions
        #undef __somtScanUnions
        #define SOMGD_somtScanUnions 1
    #else
        #define _somtScanUnions SOMTEmitC_somtScanUnions
    #endif /* _somtScanUnions */
#endif /* SOMGD_somtScanUnions */

/*
 * New Method: somtScanEnums
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtScanEnums)(SOMTEmitC *somSelf,
		string prolog,
		string each,
		string epilog);
#define somMD_SOMTEmitC_somtScanEnums "::SOMTEmitC::somtScanEnums"
#define SOMTEmitC_somtScanEnums(somSelf,prolog,each,epilog) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtScanEnums) \
	(somSelf,prolog,each,epilog))
#ifndef SOMGD_somtScanEnums
    #if (defined(_somtScanEnums) || defined(__somtScanEnums))
        #undef _somtScanEnums
        #undef __somtScanEnums
        #define SOMGD_somtScanEnums 1
    #else
        #define _somtScanEnums SOMTEmitC_somtScanEnums
    #endif /* _somtScanEnums */
#endif /* SOMGD_somtScanEnums */

/*
 * New Method: somtScanData
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtScanData)(SOMTEmitC *somSelf,
		string prolog,
		string each,
		string epilog);
#define somMD_SOMTEmitC_somtScanData "::SOMTEmitC::somtScanData"
#define SOMTEmitC_somtScanData(somSelf,prolog,each,epilog) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtScanData) \
	(somSelf,prolog,each,epilog))
#ifndef SOMGD_somtScanData
    #if (defined(_somtScanData) || defined(__somtScanData))
        #undef _somtScanData
        #undef __somtScanData
        #define SOMGD_somtScanData 1
    #else
        #define _somtScanData SOMTEmitC_somtScanData
    #endif /* _somtScanData */
#endif /* SOMGD_somtScanData */

/*
 * New Method: somtScanAttributes
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtScanAttributes)(SOMTEmitC *somSelf,
		string prolog,
		string each,
		string epilog);
#define somMD_SOMTEmitC_somtScanAttributes "::SOMTEmitC::somtScanAttributes"
#define SOMTEmitC_somtScanAttributes(somSelf,prolog,each,epilog) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtScanAttributes) \
	(somSelf,prolog,each,epilog))
#ifndef SOMGD_somtScanAttributes
    #if (defined(_somtScanAttributes) || defined(__somtScanAttributes))
        #undef _somtScanAttributes
        #undef __somtScanAttributes
        #define SOMGD_somtScanAttributes 1
    #else
        #define _somtScanAttributes SOMTEmitC_somtScanAttributes
    #endif /* _somtScanAttributes */
#endif /* SOMGD_somtScanAttributes */

/*
 * New Method: somtScanInterfaces
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtScanInterfaces)(SOMTEmitC *somSelf,
		string prolog,
		string each,
		string epilog);
#define somMD_SOMTEmitC_somtScanInterfaces "::SOMTEmitC::somtScanInterfaces"
#define SOMTEmitC_somtScanInterfaces(somSelf,prolog,each,epilog) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtScanInterfaces) \
	(somSelf,prolog,each,epilog))
#ifndef SOMGD_somtScanInterfaces
    #if (defined(_somtScanInterfaces) || defined(__somtScanInterfaces))
        #undef _somtScanInterfaces
        #undef __somtScanInterfaces
        #define SOMGD_somtScanInterfaces 1
    #else
        #define _somtScanInterfaces SOMTEmitC_somtScanInterfaces
    #endif /* _somtScanInterfaces */
#endif /* SOMGD_somtScanInterfaces */

/*
 * New Method: somtScanModules
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtScanModules)(SOMTEmitC *somSelf,
		string prolog,
		string each,
		string epilog);
#define somMD_SOMTEmitC_somtScanModules "::SOMTEmitC::somtScanModules"
#define SOMTEmitC_somtScanModules(somSelf,prolog,each,epilog) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtScanModules) \
	(somSelf,prolog,each,epilog))
#ifndef SOMGD_somtScanModules
    #if (defined(_somtScanModules) || defined(__somtScanModules))
        #undef _somtScanModules
        #undef __somtScanModules
        #define SOMGD_somtScanModules 1
    #else
        #define _somtScanModules SOMTEmitC_somtScanModules
    #endif /* _somtScanModules */
#endif /* SOMGD_somtScanModules */

/*
 * New Method: somtScanPassthru
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtScanPassthru)(SOMTEmitC *somSelf,
		boolean before,
		string prolog,
		string each,
		string epilog);
#define somMD_SOMTEmitC_somtScanPassthru "::SOMTEmitC::somtScanPassthru"
#define SOMTEmitC_somtScanPassthru(somSelf,before,prolog,each,epilog) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtScanPassthru) \
	(somSelf,before,prolog,each,epilog))
#ifndef SOMGD_somtScanPassthru
    #if (defined(_somtScanPassthru) || defined(__somtScanPassthru))
        #undef _somtScanPassthru
        #undef __somtScanPassthru
        #define SOMGD_somtScanPassthru 1
    #else
        #define _somtScanPassthru SOMTEmitC_somtScanPassthru
    #endif /* _somtScanPassthru */
#endif /* SOMGD_somtScanPassthru */

/*
 * New Method: somtEmitFullPassthru
 */
typedef void   (SOMLINK * somTD_SOMTEmitC_somtEmitFullPassthru)(SOMTEmitC *somSelf,
		boolean before,
		string language);
#define somMD_SOMTEmitC_somtEmitFullPassthru "::SOMTEmitC::somtEmitFullPassthru"
#define SOMTEmitC_somtEmitFullPassthru(somSelf,before,language) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtEmitFullPassthru) \
	(somSelf,before,language))
#ifndef SOMGD_somtEmitFullPassthru
    #if (defined(_somtEmitFullPassthru) || defined(__somtEmitFullPassthru))
        #undef _somtEmitFullPassthru
        #undef __somtEmitFullPassthru
        #define SOMGD_somtEmitFullPassthru 1
    #else
        #define _somtEmitFullPassthru SOMTEmitC_somtEmitFullPassthru
    #endif /* _somtEmitFullPassthru */
#endif /* SOMGD_somtEmitFullPassthru */

/*
 * New Method: somtScanDataF
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtScanDataF)(SOMTEmitC *somSelf,
		string filter,
		string prolog,
		string each,
		string epilog,
		boolean forceProlog);
#define somMD_SOMTEmitC_somtScanDataF "::SOMTEmitC::somtScanDataF"
#define SOMTEmitC_somtScanDataF(somSelf,filter,prolog,each,epilog,forceProlog) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtScanDataF) \
	(somSelf,filter,prolog,each,epilog,forceProlog))
#ifndef SOMGD_somtScanDataF
    #if (defined(_somtScanDataF) || defined(__somtScanDataF))
        #undef _somtScanDataF
        #undef __somtScanDataF
        #define SOMGD_somtScanDataF 1
    #else
        #define _somtScanDataF SOMTEmitC_somtScanDataF
    #endif /* _somtScanDataF */
#endif /* SOMGD_somtScanDataF */

/*
 * New Method: somtScanBasesF
 */
typedef boolean   (SOMLINK * somTD_SOMTEmitC_somtScanBasesF)(SOMTEmitC *somSelf,
		string filter,
		string prolog,
		string each,
		string epilog,
		boolean forceProlog);
#define somMD_SOMTEmitC_somtScanBasesF "::SOMTEmitC::somtScanBasesF"
#define SOMTEmitC_somtScanBasesF(somSelf,filter,prolog,each,epilog,forceProlog) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtScanBasesF) \
	(somSelf,filter,prolog,each,epilog,forceProlog))
#ifndef SOMGD_somtScanBasesF
    #if (defined(_somtScanBasesF) || defined(__somtScanBasesF))
        #undef _somtScanBasesF
        #undef __somtScanBasesF
        #define SOMGD_somtScanBasesF 1
    #else
        #define _somtScanBasesF SOMTEmitC_somtScanBasesF
    #endif /* _somtScanBasesF */
#endif /* SOMGD_somtScanBasesF */

/*
 * New Method: somtGetGlobalModifierValue
 */
typedef string   (SOMLINK * somTD_SOMTEmitC_somtGetGlobalModifierValue)(SOMTEmitC *somSelf,
		string modifierName);
#define somMD_SOMTEmitC_somtGetGlobalModifierValue "::SOMTEmitC::somtGetGlobalModifierValue"
#define SOMTEmitC_somtGetGlobalModifierValue(somSelf,modifierName) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtGetGlobalModifierValue) \
	(somSelf,modifierName))
#ifndef SOMGD_somtGetGlobalModifierValue
    #if (defined(_somtGetGlobalModifierValue) || defined(__somtGetGlobalModifierValue))
        #undef _somtGetGlobalModifierValue
        #undef __somtGetGlobalModifierValue
        #define SOMGD_somtGetGlobalModifierValue 1
    #else
        #define _somtGetGlobalModifierValue SOMTEmitC_somtGetGlobalModifierValue
    #endif /* _somtGetGlobalModifierValue */
#endif /* SOMGD_somtGetGlobalModifierValue */

/*
 * New Method: somtGetFirstGlobalDefinition
 */
typedef SOMTEntryC*   (SOMLINK * somTD_SOMTEmitC_somtGetFirstGlobalDefinition)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtGetFirstGlobalDefinition "::SOMTEmitC::somtGetFirstGlobalDefinition"
#define SOMTEmitC_somtGetFirstGlobalDefinition(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtGetFirstGlobalDefinition) \
	(somSelf))
#ifndef SOMGD_somtGetFirstGlobalDefinition
    #if (defined(_somtGetFirstGlobalDefinition) || defined(__somtGetFirstGlobalDefinition))
        #undef _somtGetFirstGlobalDefinition
        #undef __somtGetFirstGlobalDefinition
        #define SOMGD_somtGetFirstGlobalDefinition 1
    #else
        #define _somtGetFirstGlobalDefinition SOMTEmitC_somtGetFirstGlobalDefinition
    #endif /* _somtGetFirstGlobalDefinition */
#endif /* SOMGD_somtGetFirstGlobalDefinition */

/*
 * New Method: somtGetNextGlobalDefinition
 */
typedef SOMTEntryC*   (SOMLINK * somTD_SOMTEmitC_somtGetNextGlobalDefinition)(SOMTEmitC *somSelf);
#define somMD_SOMTEmitC_somtGetNextGlobalDefinition "::SOMTEmitC::somtGetNextGlobalDefinition"
#define SOMTEmitC_somtGetNextGlobalDefinition(somSelf) \
    (SOM_Resolve(somSelf, SOMTEmitC, somtGetNextGlobalDefinition) \
	(somSelf))
#ifndef SOMGD_somtGetNextGlobalDefinition
    #if (defined(_somtGetNextGlobalDefinition) || defined(__somtGetNextGlobalDefinition))
        #undef _somtGetNextGlobalDefinition
        #undef __somtGetNextGlobalDefinition
        #define SOMGD_somtGetNextGlobalDefinition 1
    #else
        #define _somtGetNextGlobalDefinition SOMTEmitC_somtGetNextGlobalDefinition
    #endif /* _somtGetNextGlobalDefinition */
#endif /* SOMGD_somtGetNextGlobalDefinition */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define SOMTEmitC_somDefaultInit SOMObject_somDefaultInit
#define SOMTEmitC_somDestruct SOMObject_somDestruct
#define SOMTEmitC_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define SOMTEmitC_somDefaultAssign SOMObject_somDefaultAssign
#define SOMTEmitC_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define SOMTEmitC_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define SOMTEmitC_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define SOMTEmitC_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define SOMTEmitC_somDefaultVAssign SOMObject_somDefaultVAssign
#define SOMTEmitC_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define SOMTEmitC_somFree SOMObject_somFree
#define SOMTEmitC_somGetClass SOMObject_somGetClass
#define SOMTEmitC_somGetClassName SOMObject_somGetClassName
#define SOMTEmitC_somGetSize SOMObject_somGetSize
#define SOMTEmitC_somIsA SOMObject_somIsA
#define SOMTEmitC_somIsInstanceOf SOMObject_somIsInstanceOf
#define SOMTEmitC_somRespondsTo SOMObject_somRespondsTo
#define SOMTEmitC_somDispatch SOMObject_somDispatch
#define SOMTEmitC_somClassDispatch SOMObject_somClassDispatch
#define SOMTEmitC_somCastObj SOMObject_somCastObj
#define SOMTEmitC_somResetObj SOMObject_somResetObj
#define SOMTEmitC_somDispatchV SOMObject_somDispatchV
#define SOMTEmitC_somDispatchL SOMObject_somDispatchL
#define SOMTEmitC_somDispatchA SOMObject_somDispatchA
#define SOMTEmitC_somDispatchD SOMObject_somDispatchD
#define SOMTEmitC_somPrintSelf SOMObject_somPrintSelf
#define SOMTEmitC_somDumpSelf SOMObject_somDumpSelf
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_SOMTEmitC_h */
