source: dev/trunk/abdev/BasicCompiler_Common/include/ClassImpl.h@ 184

Last change on this file since 184 was 184, checked in by dai_9181, 17 years ago
File size: 1.7 KB
Line 
1#pragma once
2
3#include <jenga/include/smoothie/Class.h>
4
5class ClassImpl: public CClass
6{
7public:
8 ClassImpl( const NamespaceScopes &namespaceScopes, const NamespaceScopesCollection &importedNamespaces, const string &name )
9 : CClass( namespaceScopes, importedNamespaces, name )
10 {
11 }
12
13 //継承させる
14 virtual bool Inherits( const char *inheritNames, int nowLine );
15 virtual bool InheritsClass( const CClass &inheritsClass, int nowLine );
16 virtual bool InheritsInterface( const CClass &inheritsClass, int nowLine );
17
18 //メンバ、メソッドの追加
19 CMember *CreateMember( Prototype::Accessibility accessibility, bool isConst, bool isRef, char *buffer, int nowLine );
20 virtual void AddMember( Prototype::Accessibility accessibility, bool idConst, bool isRef, char *buffer, int nowLine );
21 virtual void AddStaticMember( Prototype::Accessibility accessibility, bool isConst, bool isRef, char *buffer, int nowLine );
22
23 virtual void AddMethod(CClass *pobj_c, Prototype::Accessibility accessibility, BOOL bStatic, bool isConst, bool isAbstract,
24 bool isVirtual, bool isOverride, char *buffer, int nowLine);
25
26 virtual LONG_PTR GetVtblGlobalOffset(void) const;
27 virtual void ActionVtblSchedule(LONG_PTR ImageBase, LONG_PTR MemPos_CodeSection);
28};
29
30class ClassesImpl : public Classes
31{
32public:
33 virtual CClass *Create( const NamespaceScopes &namespaceScopes, const NamespaceScopesCollection &importedNamespaces, const char *name);
34 virtual void CollectClassesForNameOnly( const BasicSource &source );
35
36 virtual void InitStaticMember();
37
38private:
39 bool MemberVar_LoopRefCheck(const CClass &objClass);
40public:
41 virtual void GetClass_recur(const char *lpszInheritsClass);
42 virtual void GetAllClassInfo();
43 virtual void Compile_System_InitializeUserTypes();
44
45};
Note: See TracBrowser for help on using the repository browser.