Changeset 172 in dev
- Timestamp:
- Jun 19, 2007, 4:02:00 AM (17 years ago)
- Location:
- trunk/jenga
- Files:
-
- 2 added
- 1 deleted
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/jenga/include/smoothie/Class.h
r171 r172 138 138 return dynamicMembers; 139 139 } 140 const Members &GetStaticMembers() const 141 { 142 return staticMembers; 143 } 144 Members &GetDynamicMembers() 145 { 146 return dynamicMembers; 147 } 148 Members &GetStaticMembers() 149 { 150 return staticMembers; 151 } 140 152 141 153 const Methods &GetMethods() const … … 144 156 } 145 157 const Methods &GetStaticMethods() const 158 { 159 return staticMethods; 160 } 161 Methods &GetMethods() 162 { 163 return methods; 164 } 165 Methods &GetStaticMethods() 146 166 { 147 167 return staticMethods; … … 266 286 }; 267 287 288 #define MAX_CLASS_HASH 65535 268 289 class Classes 269 290 { 291 int hash(const char *name) const; 292 void DestroyClass(CClass *pobj_c); 293 public: 294 CClass *pobj_ClassHash[MAX_CLASS_HASH]; 295 296 Classes(); 297 ~Classes(); 298 299 const CClass *Find( const string &fullName ) const; 300 const CClass *Find( const NamespaceScopes &namespaceScopes, const string &name ) const; 301 302 CClass *AddClass( const NamespaceScopes &namespaceScopes, const NamespaceScopesCollection &importedNamespaces, const char *name,int nowLine); 303 304 void ActionVtblSchedule(LONG_PTR ImageBase, LONG_PTR MemPos_CodeSection); 305 306 private: 307 void AddMethod(CClass *pobj_c, Prototype::Accessibility accessibility, BOOL bStatic, bool isConst, bool isAbstract, 308 bool isVirtual, bool isOverride, char *buffer, int nowLine); 309 BOOL MemberVar_LoopRefCheck(const CClass &objClass); 310 public: 311 void GetAllClassInfo(void); 312 void Compile_System_InitializeUserTypes(); 313 314 315 ///////////////////////////// 316 // 特殊クラス 317 ///////////////////////////// 318 CClass *pStringClass; 319 CClass *pObjectClass; 320 CClass *GetStringClassPtr() const; 321 CClass *GetObjectClassPtr() const; 322 323 324 ///////////////////////////// 325 // 現在コンパイル中の情報 326 ///////////////////////////// 327 private: 328 const CClass *pCompilingClass; 329 const CMethod *pCompilingMethod; 330 public: 331 //コンパイル開始の通知を受け取るメソッド 332 void StartCompile( UserProc *pUserProc ); 333 334 //現在コンパイル中のメソッド情報を取得 335 const CClass *GetNowCompilingClass() const; 336 const CMethod *GetNowCompilingMethodInfo(); 337 338 339 ///////////////////// 340 // イテレータ 341 ///////////////////// 342 private: 343 CClass **ppobj_IteClass; 344 int iIteMaxNum; 345 int iIteNextNum; 346 public: 347 void Iterator_Init(void); 348 void Iterator_Reset(void); 349 BOOL Iterator_HasNext(void); 350 CClass *Iterator_GetNext(void); 351 int Iterator_GetMaxCount(void); 270 352 }; -
trunk/jenga/include/smoothie/ObjectModule.h
r170 r172 4 4 #include "Namespace.h" 5 5 #include "Procedure.h" 6 #include "Class.h" 6 7 7 8 // プロジェクト中に存在するメタ情報 … … 12 13 13 14 // クラス 15 Classes classes; 14 16 15 17 // TypeDef -
trunk/jenga/include/smoothie/Smoothie.h
r170 r172 3 3 #include "Source.h" 4 4 #include "ObjectModule.h" 5 #include "LexicalScoping.h"6 5 7 6 class Smoothie{ … … 13 12 static BasicSource source; 14 13 static NamespaceScopes liveingNamespaceScopes; 15 static CLexicalScopes lexicalScopes;16 14 }; 17 15 … … 21 19 // 現在インポートされている名前空間 22 20 static NamespaceScopesCollection importedNamespaces; 21 22 static const CClass *pCompilingClass; 23 23 }; 24 24 -
trunk/jenga/include/smoothie/SmoothieException.h
r170 r172 22 22 { 23 23 } 24 SmoothieException() 25 : errorCode( 300 ) 26 , keyword( "" ) 27 , nowLine( -1 ) 28 { 29 } 24 30 25 31 int GetErrorCode() const -
trunk/jenga/include/smoothie/Type.h
r170 r172 103 103 bool IsBoolean() const; 104 104 105 static bool IsPointer( int basicType ); 105 106 bool IsPointer() const; 106 107 bool IsSigned() const; -
trunk/jenga/include/smoothie/Variable.h
r170 r172 139 139 140 140 int source_code_address; 141 142 143 static int GetSubScriptCounts(const int *ss){ 144 // 配列の要素数を取得 145 int i,i2; 146 for(i=0,i2=1;i<255;i++){ 147 if(ss[i]==-1) break; 148 i2*=ss[i]+1; 149 } 150 return i2; 151 } 141 152 }; 142 153 -
trunk/jenga/projects/smoothie/smoothie.vcproj
r171 r172 59 59 <Tool 60 60 Name="VCLibrarianTool" 61 OutputFile="..\..\lib\amd64\$(ProjectName)d.lib" 61 62 /> 62 63 <Tool … … 118 119 <Tool 119 120 Name="VCLibrarianTool" 121 OutputFile="..\..\lib\amd64\$(ProjectName).lib" 120 122 /> 121 123 <Tool … … 177 179 <Tool 178 180 Name="VCLibrarianTool" 181 OutputFile="..\..\lib\x86\$(ProjectName)d.lib" 179 182 /> 180 183 <Tool … … 238 241 <Tool 239 242 Name="VCLibrarianTool" 243 OutputFile="..\..\lib\x86\$(ProjectName)d.lib" 240 244 /> 241 245 <Tool … … 265 269 > 266 270 <File 271 RelativePath="..\..\src\smoothie\Class.cpp" 272 > 273 </File> 274 <File 267 275 RelativePath="..\..\src\smoothie\Method.cpp" 268 276 > … … 286 294 <File 287 295 RelativePath="..\..\src\smoothie\Symbol.cpp" 296 > 297 </File> 298 <File 299 RelativePath="..\..\src\smoothie\Type.cpp" 288 300 > 289 301 </File> … … 303 315 </File> 304 316 <File 305 RelativePath="..\..\include\smoothie\LexicalScoping.h"306 >307 </File>308 <File309 317 RelativePath="..\..\include\smoothie\Member.h" 310 318 > -
trunk/jenga/src/smoothie/Method.cpp
r170 r172 1 #include <jenga/include/smoothie/ Method.h>1 #include <jenga/include/smoothie/Class.h> 2 2 3 3 -
trunk/jenga/src/smoothie/Smoothie.cpp
r170 r172 6 6 Meta Smoothie::meta; 7 7 NamespaceScopesCollection Smoothie::Temp::importedNamespaces; 8 const CClass *Smoothie::Temp::pCompilingClass = NULL; 8 9 9 10 bool Smoothie::isFullCompile = false;
Note:
See TracChangeset
for help on using the changeset viewer.