summaryrefslogtreecommitdiff
path: root/includes/compiler/CTemplateNew.h
blob: ca925007f5659da5e292e06a2eee3c661cf800cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef COMPILER_CTEMPLATENEW_H
#define COMPILER_CTEMPLATENEW_H

#include "compiler/common.h"

extern TemplClass *ctempl_templates;
extern TemplateFunction *ctempl_templatefuncs;
extern TemplStack *ctempl_curinstance;

extern void CTempl_Setup(void);
extern void CTempl_Cleanup(void);
extern TemplArg *CTempl_ParseUncheckTemplArgs(TemplParam *params, Boolean is_global);
extern Type *CTempl_ParseTemplTemplParam(TypeTemplDep *type);
extern Type *CTempl_ClassGetType(TemplClass *templ);
extern Boolean CTempl_IsQualifiedMember(DeclInfo *di, Type *type, NameSpace **resultnspace);
extern void CTempl_Parse(TemplClass *templ, AccessType access);
extern void CTempl_ParseInstanceScopeFunction(Object *funcobj, TemplClassInst *inst, TypeClass *tclass);
extern Boolean CTempl_GenFuncInstance(TemplateFunction *templ, TemplFuncInstance *inst, Boolean flag);
extern void CTempl_InstantiateMember(TemplClass *templ, TemplClassInst *inst, TemplateMember *tmemb, Object *object, Boolean flag);
extern Boolean CTempl_Instantiate(void);
extern Boolean CTempl_InlineFunctionCheck(Object *funcobj);

#endif