Changeset 183 in dev for trunk/abdev/BasicCompiler64/Compile_Statement.cpp
- Timestamp:
- Jun 24, 2007, 6:50:40 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler64/Compile_Statement.cpp
r135 r183 1 #include <jenga/include/smoothie/LexicalAnalysis.h> 2 3 #include <LexicalScopingImpl.h> 4 #include <Compiler.h> 5 1 6 #include "../BasicCompiler_Common/common.h" 2 7 #include "Opcode.h" … … 131 136 if(resultType.IsDouble()){ 132 137 double dbl=0; 133 offset= dataTable.Add( dbl );138 offset=Compiler::GetNativeCode().GetDataTable().Add( dbl ); 134 139 135 140 //comisd xmm0,qword ptr[data table offset] … … 145 150 else if(resultType.IsSingle()){ 146 151 float flt=0; 147 offset= dataTable.Add( flt );152 offset=Compiler::GetNativeCode().GetDataTable().Add( flt ); 148 153 149 154 //comiss xmm0,dword ptr[data table offset] … … 195 200 196 201 //レキシカルスコープをレベルアップ 197 obj_LexScopes.Start( obp, SCOPE_TYPE_IF );202 GetLexicalScopes().Start( obp, SCOPE_TYPE_IF ); 198 203 199 204 i2=CompileBuffer(ESC_ENDIF,0); 200 205 201 206 //レキシカルスコープをレベルダウン 202 obj_LexScopes.End();207 GetLexicalScopes().End(); 203 208 204 209 … … 218 223 219 224 //レキシカルスコープをレベルアップ 220 obj_LexScopes.Start( obp, SCOPE_TYPE_IF );225 GetLexicalScopes().Start( obp, SCOPE_TYPE_IF ); 221 226 222 227 CompileBuffer(ESC_ENDIF,0); 223 228 224 229 //レキシカルスコープをレベルダウン 225 obj_LexScopes.End();230 GetLexicalScopes().End(); 226 231 227 232 … … 320 325 321 326 //レキシカルスコープをレベルアップ 322 obj_LexScopes.Start( obp, SCOPE_TYPE_WHILE );327 GetLexicalScopes().Start( obp, SCOPE_TYPE_WHILE ); 323 328 324 329 //While内をコンパイル 325 330 CompileBuffer(0,COM_WEND); 326 331 327 obj_LexScopes.CallDestructorsOfScopeEnd();332 GetLexicalScopes().CallDestructorsOfScopeEnd(); 328 333 329 334 //jmp ... … … 335 340 336 341 //レキシカルスコープをレベルダウン 337 obj_LexScopes.End();342 GetLexicalScopes().End(); 338 343 339 344 *((long *)(OpBuffer+je_schedule-sizeof(long)))=obp-je_schedule; //jeジャンプ先のオフセット値 … … 457 462 458 463 //レキシカルスコープをレベルアップ 459 obj_LexScopes.Start( obp, SCOPE_TYPE_FOR );464 GetLexicalScopes().Start( obp, SCOPE_TYPE_FOR ); 460 465 461 466 //For内をコンパイル 462 467 CompileBuffer(0,COM_NEXT); 463 468 464 obj_LexScopes.CallDestructorsOfScopeEnd();469 GetLexicalScopes().CallDestructorsOfScopeEnd(); 465 470 466 471 if(szNextVariable[0]){ … … 480 485 481 486 //レキシカルスコープをレベルダウン 482 obj_LexScopes.End();487 GetLexicalScopes().End(); 483 488 484 489 *((long *)(OpBuffer+je_schedule))=obp-(je_schedule+sizeof(long)); //jeジャンプ先のオフセット値 … … 504 509 505 510 //レキシカルスコープをレベルアップ 506 obj_LexScopes.Start( obp, SCOPE_TYPE_DO );511 GetLexicalScopes().Start( obp, SCOPE_TYPE_DO ); 507 512 508 513 //Do内をコンパイル 509 514 CompileBuffer(0,COM_LOOP); 510 515 511 obj_LexScopes.CallDestructorsOfScopeEnd();516 GetLexicalScopes().CallDestructorsOfScopeEnd(); 512 517 513 518 extern char *basbuf; … … 565 570 566 571 //レキシカルスコープをレベルダウン 567 obj_LexScopes.End();572 GetLexicalScopes().End(); 568 573 569 574 *((long *)(OpBuffer+je_schedule))=obp-(je_schedule+sizeof(long)); //jmpジャンプ先のオフセット値 … … 599 604 600 605 //未解放のローカルオブジェクトのデストラクタを呼び出す 601 obj_LexScopes.CallDestructorsOfReturn();606 GetLexicalScopes().CallDestructorsOfReturn(); 602 607 603 608 //jmp ...(End Sub/Function) … … 831 836 832 837 //レキシカルスコープをレベルアップ 833 obj_LexScopes.Start( obp, SCOPE_TYPE_SELECT );838 GetLexicalScopes().Start( obp, SCOPE_TYPE_SELECT ); 834 839 835 840 //Select Case内をコンパイル … … 848 853 849 854 //レキシカルスコープをレベルダウン 850 obj_LexScopes.End();855 GetLexicalScopes().End(); 851 856 852 857 pCaseSchedule=temp_pCaseSchedule;
Note:
See TracChangeset
for help on using the changeset viewer.