Changeset 340 in dev
- Timestamp:
- Oct 6, 2007, 12:56:37 AM (17 years ago)
- Location:
- trunk/abdev/BasicCompiler_Common
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler_Common/Intermediate_Step1.cpp
r332 r340 855 855 temporary[i2]=ESC_INHERITS; 856 856 } 857 else if( lstrcmpi( temporary + i3, "Implements" ) == 0 ) 858 { 859 i2 = i3; 860 temporary[i2++] = 1; 861 temporary[i2] = ESC_IMPLEMENTS; 862 } 857 863 else if(lstrcmpi(temporary+i3,"Interface")==0){ 858 864 i2=i3; -
trunk/abdev/BasicCompiler_Common/Intermediate_Step2.cpp
r322 r340 313 313 314 314 case ESC_INHERITS: 315 case ESC_IMPLEMENTS: 315 316 case ESC_VIRTUAL: 316 317 case ESC_OVERRIDE: -
trunk/abdev/BasicCompiler_Common/error.cpp
r337 r340 202 202 if(num==135) lstrcpy( msg, "クラスまたはインターフェイス以外の型を継承元として指定することはできません。" ); 203 203 if(num==136) lstrcpy( msg, "非仮想関数に対してオーバーライドしようとしました。" ); 204 if(num==137) lstrcpy(msg,"ImplementsはClass定義内の先頭に記述する必要があります。"); 204 205 205 206 //Enum関連 -
trunk/abdev/BasicCompiler_Common/include/Class.h
r325 r340 294 294 bool IsInheritsInterface( const CClass *pInterfaceClass ) const; 295 295 296 // 継承させる296 // クラス継承 297 297 bool Inherits( const char *inheritNames, int nowLine ); 298 298 bool InheritsClass( const CClass &inheritsClass, const Types &actualTypeParameters, int nowLine ); 299 299 bool InheritsInterface( const CClass &inheritsClass, int nowLine ); 300 301 // インターフェイス実装 302 bool Implements( const char *interfaceNames, int nowLine ); 300 303 301 304 //メンバ、メソッドの追加 -
trunk/abdev/BasicCompiler_Common/include/ver.h
r338 r340 6 6 // バージョン付加文字列 7 7 #ifdef _AMD64_ 8 #define VER_INFO "(x64) (rev.3 43)"8 #define VER_INFO "(x64) (rev.351)" 9 9 #else 10 #define VER_INFO "(rev.3 43)"10 #define VER_INFO "(rev.351)" 11 11 #endif -
trunk/abdev/BasicCompiler_Common/src/Class.cpp
r326 r340 398 398 return true; 399 399 } 400 401 bool CClass::Implements( const char *interfaceNames, int nowLine ) 402 { 403 Jenga::Common::Strings paramStrs; 404 SplitParameter( interfaceNames, paramStrs ); 405 406 // TODO: 実装 407 return true; 408 } 409 400 410 CMember *CClass::CreateMember( Prototype::Accessibility accessibility, bool isConst, bool isRef, char *buffer, int nowLine ) 401 411 { … … 1273 1283 break; 1274 1284 } 1285 else if( basbuf[i] == 1 && basbuf[i+1] == ESC_IMPLEMENTS ) 1286 { 1287 SetError(137, NULL, i ); 1288 break; 1289 } 1275 1290 1276 1291 sub_address=i; … … 1412 1427 } 1413 1428 else{ 1414 bool isInherits = false; 1415 if(basbuf[i+1]==1&&basbuf[i+2]==ESC_INHERITS){ 1416 //継承を行う場合 1417 isInherits = true; 1418 1429 if(basbuf[i+1]==1&&basbuf[i+2]==ESC_INHERITS) 1430 { 1431 // クラス継承先が指定されているとき 1419 1432 i += 3; 1420 1433 GetCommandToken( temporary, basbuf, i ); … … 1425 1438 } 1426 1439 } 1427 1428 if( !isInherits ){1429 // Objectを継承する1440 else 1441 { 1442 // 何の指定もないときはObjectクラスを継承する 1430 1443 lstrcpy( temporary, "Object" ); 1431 1444 } 1432 1433 1445 pobj_c->Inherits( temporary, i ); 1446 1447 if( basbuf[i+1] == 1 && basbuf[i+2] == ESC_IMPLEMENTS ) 1448 { 1449 // インターフェイス実装を行う場合 1450 i += 3; 1451 GetCommandToken( temporary, basbuf, i ); 1452 1453 pobj_c->Implements( temporary, i ); 1454 } 1434 1455 } 1435 1456 InheritsError: … … 1448 1469 if(basbuf[i]==1&&basbuf[i+1]==ESC_INHERITS){ 1449 1470 SetError(111,NULL,i); 1471 break; 1472 } 1473 else if( basbuf[i] == 1 && basbuf[i+1] == ESC_IMPLEMENTS ) 1474 { 1475 SetError(137, NULL, i ); 1450 1476 break; 1451 1477 }
Note:
See TracChangeset
for help on using the changeset viewer.