Changeset 56 in dev for BasicCompiler32


Ignore:
Timestamp:
Feb 15, 2007, 3:39:40 AM (18 years ago)
Author:
dai_9181
Message:

・[Unicode]リテラル文字列のスイッチング
・[Unicode]Char型を文字型として扱うようにする
・[Unicode]SByte型を追加する
に対応。

/unicodeコマンドオプションに対応。

Location:
BasicCompiler32
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler32/BasicCompiler.vcproj

    r50 r56  
    147147                Optimization="2"
    148148                InlineFunctionExpansion="1"
     149                AdditionalIncludeDirectories="..\cpplibs\boost"
    149150                PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;JPN"
    150151                StringPooling="true"
     
    244245                Optimization="2"
    245246                InlineFunctionExpansion="1"
     247                AdditionalIncludeDirectories="..\cpplibs\boost"
    246248                PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;ENG"
    247249                StringPooling="true"
     
    828830                    Name="Parts"
    829831                    >
     832                    <File
     833                        RelativePath="..\BasicCompiler_Common\DataTable.cpp"
     834                        >
     835                    </File>
    830836                    <File
    831837                        RelativePath="..\BasicCompiler_Common\LoopRefCheck.cpp"
  • BasicCompiler32/Compile_Var.cpp

    r55 r56  
    853853            char *temp;
    854854            temp=(char *)i64data;
    855             i2=AddDataTable(temp,lstrlen(temp));
     855            i2=dataTable.AddString(temp,lstrlen(temp));
    856856            HeapDefaultFree(temp);
    857857
     
    10431043            char *temp;
    10441044            temp=(char *)i64data;
    1045             i2=AddDataTable(temp,lstrlen(temp));
     1045            i2=dataTable.AddString(temp,lstrlen(temp));
    10461046            HeapDefaultFree(temp);
    10471047
  • BasicCompiler32/MakePeHdr.cpp

    r51 r56  
    7777
    7878
    79 int AddDataTable(char *buffer,int length){
    80     extern HANDLE hHeap;
    81     extern char *DataTable;
    82     extern int DataTableSize;
    83     int RetNum;
    84 
    85     DataTable=(char *)HeapReAlloc(hHeap,0,DataTable,DataTableSize+length+1);
    86     memcpy(DataTable+DataTableSize,buffer,length);
    87     DataTable[DataTableSize+length]=0;
    88 
    89     RetNum=DataTableSize; //ImageBase+MemPos_DataSectionが後に足される
    90 
    91     DataTableSize+=length+1;
    92 
    93     return RetNum;
    94 }
    95 
    9679void DebugVariable(void){
    9780    char temporary[255];
     
    136119    //////////////////
    137120    // データテーブル
    138     extern char *DataTable;
    139     extern int DataTableSize;
     121    dataTable.Init();
    140122    if(bDebugCompile){
    141         DataTable=(char *)HeapAlloc(hHeap,0,2);
    142         DataTable[0]=2;
    143         DataTable[1]=0;
    144         DataTableSize=2;
    145     }
    146     else{
    147         DataTable=(char *)HeapAlloc(hHeap,0,1);
    148         DataTableSize=0;
     123        dataTable.Add( (long)0x00000002 );
    149124    }
    150125
     
    828803
    829804    //データセクションのファイル上のサイズ
    830     if(DataTableSize%FILE_ALIGNMENT) FileSize_DataSection=DataTableSize+(FILE_ALIGNMENT-DataTableSize%FILE_ALIGNMENT);
    831     else FileSize_DataSection=DataTableSize;
     805    if(dataTable.GetSize()%FILE_ALIGNMENT) FileSize_DataSection=dataTable.GetSize()+(FILE_ALIGNMENT-dataTable.GetSize()%FILE_ALIGNMENT);
     806    else FileSize_DataSection=dataTable.GetSize();
    832807    if(FileSize_DataSection) bUse_DataSection=1;
    833808    else bUse_DataSection=0;
     
    15561531    if(bUse_DataSection){
    15571532        //データ テーブル
    1558         WriteFile(hFile,DataTable,DataTableSize,(DWORD *)&i2,NULL);
     1533        WriteFile(hFile,dataTable.GetPtr(),dataTable.GetSize(),(DWORD *)&i2,NULL);
    15591534        i+=i2;
    15601535    }
     
    16481623    HeapDefaultFree(pHintTable);
    16491624
    1650     //データテーブルに関する情報を解放
    1651     HeapDefaultFree(DataTable);
    1652 
    16531625    //グローバル変数の初期バッファを解放
    16541626    HeapDefaultFree(initGlobalBuf);
  • BasicCompiler32/NumOpe.cpp

    r55 r56  
    9999    }
    100100
    101     int i2;
    102     i2=AddDataTable(lpszText,lstrlen(lpszText));
     101    // TODO: Ex表記による文字列長に対応する
     102    int i2 = dataTable.AddString( lpszText );
    103103
    104104    //push lpszPtr
     
    244244                    bLiteralCalculation=0;
    245245
    246                     i2=AddDataTable(term,i3);
     246                    i2=dataTable.AddString(term,i3);
    247247
    248248                    //push DataSize
  • BasicCompiler32/Opcode.h

    r50 r56  
    7878};
    7979
    80 
    81 //MakePeHdr.cpp
    82 int AddDataTable(char *buffer,int length);
    8380
    8481//RSrcSection.cpp
Note: See TracChangeset for help on using the changeset viewer.