Changeset 327 in dev
- Timestamp:
- Sep 25, 2007, 9:23:38 PM (17 years ago)
- Location:
- trunk/abdev
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/NumOpe.cpp
r319 r327 333 333 int idProc=GetProc(procName,(void **)&pInfo); 334 334 335 if(idProc){ 336 //閉じカッコ")"に続く文字がNULLでないとき 337 if(termFull[i2+1+i4+1]!='\0'){ 335 if(idProc) 336 { 337 if(termFull[i2+1+i4+1]!='\0') 338 { 339 //閉じカッコ")"に続く文字がNULLでないとき 338 340 SetError(42,NULL,cp); 339 341 } -
trunk/abdev/BasicCompiler32/Opcode.h
r325 r327 19 19 #define breakpoint compiler.codeGenerator.PutOld( (char)0xCC ); 20 20 21 22 //プロシージャの種類23 #define PROC_DEFAULT 1 //ユーザー定義関数24 #define PROC_DLL 2 //DLL関数25 #define PROC_BUILTIN 3 //コンパイラ埋め込み型26 #define PROC_PTR 4 //関数ポインタ27 21 28 22 //プロシージャ -
trunk/abdev/BasicCompiler64/Opcode.h
r325 r327 19 19 #define breakpoint compiler.codeGenerator.PutOld( (char)0xCC ); 20 20 21 22 //プロシージャの種類23 #define PROC_DEFAULT 1 //ユーザー定義関数24 #define PROC_DLL 2 //DLL関数25 #define PROC_BUILTIN 3 //コンパイラ埋め込み型26 #define PROC_PTR 4 //関数ポインタ27 21 28 22 //プロシージャ -
trunk/abdev/BasicCompiler_Common/Enum.cpp
r322 r327 225 225 } 226 226 227 sprintf(buffer+length,"\tFunction Operator or (enumBase As %s) As %s\n",parent->GetName().c_str(),parent->GetName().c_str()); 228 length+=lstrlen(buffer+length); 229 sprintf(buffer+length,"\t\tReturn New %s(This.value or enumBase.value, \"custom\")\n",parent->GetName().c_str()); 230 length+=lstrlen(buffer+length); 231 lstrcpy(buffer+length,"\tEnd Function\n"); 232 length+=lstrlen(buffer+length); 233 234 sprintf(buffer+length,"\tFunction Operator and (enumBase As %s) As %s\n",parent->GetName().c_str(),parent->GetName().c_str()); 235 length+=lstrlen(buffer+length); 236 sprintf(buffer+length,"\t\tReturn New %s(This.value and enumBase.value, \"custom\")\n",parent->GetName().c_str()); 237 length+=lstrlen(buffer+length); 238 lstrcpy(buffer+length,"\tEnd Function\n"); 239 length+=lstrlen(buffer+length); 240 227 241 /* 228 242 sprintf(buffer+length,"\tOverride Function ToString() As String\n",parent->TypeName); -
trunk/abdev/BasicCompiler_Common/Intermediate_Step1.cpp
r322 r327 371 371 char *temporary,temp2[VN_SIZE]; 372 372 373 bool isBeforeCharDelimitation = false;373 bool isBeforeCharDelimitation = true; 374 374 temporary=(char *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,(lstrlen(buffer)+255)*2); 375 375 for(i=0,i2=0,IsStr=0;;i++,i2++){ -
trunk/abdev/BasicCompiler_Common/Subroutine.cpp
r319 r327 61 61 if(*ppInfo) return PROC_BUILTIN; 62 62 63 //関数ポインタ 63 64 ///////////////////////////////////////////////////////////////// 65 //関数ポインタ、またはデリゲート 66 ///////////////////////////////////////////////////////////////// 67 64 68 Type type; 65 69 if( !GetVarType( name, type, false ) ){ 66 70 return 0; 67 71 } 68 if( type.IsProcPtr() ){ 72 73 if( type.IsProcPtr() ) 74 { 75 // 関数ポインタ 69 76 return PROC_PTR; 77 } 78 79 if( type.IsObject() && type.GetClass().IsDelegate() ) 80 { 81 // デリゲート 82 return PROC_DELEGATE; 70 83 } 71 84 … … 185 198 } 186 199 } 200 } 201 else if( kind == PROC_DELEGATE ) 202 { 203 // デリゲート 204 char tempName[VN_SIZE]; 205 lstrcpy( tempName, fullCallName ); 206 lstrcat( tempName, ".Call" ); 207 208 void *pInfo=(void *)GetSubHash( tempName ); 209 if( !pInfo ) 210 { 211 Jenga::Throw( "デリゲートの内部Callメソッドの取得に失敗" ); 212 } 213 214 return CallProc( PROC_DEFAULT, pInfo, tempName, lpszParms, resultType, isCallOn ); 187 215 } 188 216 else{ -
trunk/abdev/BasicCompiler_Common/src/Delegate.cpp
r325 r327 188 188 destSource += sourceTemplate.GetResult( values ); 189 189 } 190 191 ts( destSource.c_str() );192 190 }
Note:
See TracChangeset
for help on using the changeset viewer.