2022-11-20 05:07:22 +00:00
|
|
|
#ifndef COMPILER_CTEMPLATECLASS_H
|
|
|
|
#define COMPILER_CTEMPLATECLASS_H
|
|
|
|
|
|
|
|
#include "compiler/common.h"
|
|
|
|
|
2022-12-29 12:32:55 +00:00
|
|
|
extern TemplClass *CTemplClass_GetMasterTemplate(TemplClass *tmclass);
|
|
|
|
extern void CTemplClass_RegisterUsingDecl(TemplClass *tmclass, TypeTemplDep *type, AccessType access);
|
|
|
|
extern void CTemplClass_RegisterFriend(TemplClass *tmclass, DeclInfo *di);
|
|
|
|
extern void CTemplClass_RegisterBaseClass(TemplClass *tmclass, Type *type, AccessType access, Boolean is_virtual);
|
|
|
|
extern void CTemplClass_RegisterEnumType(TemplClass *tmclass, TypeEnum *enumtype);
|
|
|
|
extern void CTemplClass_RegisterEnumerator(TemplClass *tmclass, ObjEnumConst *objenumconst, ENode *initexpr);
|
|
|
|
extern void CTemplClass_RegisterObjectInit(TemplClass *tmclass, Object *object, ENode *initexpr);
|
|
|
|
extern void CTemplClass_RegisterObjectDef(TemplClass *tmclass, ObjBase *refobj);
|
|
|
|
extern void CTemplClass_CompleteClass(TemplClass *templ, DeclE *de);
|
|
|
|
extern TemplClassInst *CTemplClass_GetInstance(TemplClass *tmclass, TemplArg *args1, TemplArg *args2);
|
|
|
|
extern TemplateMember *CTemplClass_DefineMember(TemplClass *tmclass, Object *object, FileOffsetInfo *foi, TStream *stream);
|
|
|
|
extern void CTemplClass_ParsePartialSpecialization(DeclFucker *what_is_this, TemplParam *params, short mode, SInt32 *offset);
|
|
|
|
extern void CTemplClass_ParseClass(DeclFucker *what_is_this, TemplParam *params, short mode, SInt32 *offset);
|
|
|
|
extern Boolean CTemplClass_FindPartialTemplate(TemplArg *args, TemplClass **resultTempl, TemplArg **resultArgs);
|
|
|
|
extern TemplClass *CTemplClass_DefineNestedClass(TemplClass *parent, HashNameNode *name, short mode);
|
|
|
|
extern Boolean CTempl_InstantiateTemplateClass(TypeClass *tclass);
|
|
|
|
|
2022-11-20 05:07:22 +00:00
|
|
|
#endif
|