Ignore:
Timestamp:
Aug 21, 2007, 11:00:25 PM (17 years ago)
Author:
dai_9181
Message:

ジェネリクスのベースを実装

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler_Common/Subroutine.cpp

    r277 r290  
    7373}
    7474
    75 void SplitObjectName(const char *name,char *ObjectName,int *pRefType){
     75void SplitObjectName(const char *name,char *ObjectName, ReferenceKind &referenceFind )
     76{
     77    referenceFind = RefNon;
     78
    7679    int i4;
    7780    for(i4=lstrlen(name)-1;i4>=0;i4--){
     
    8285    else{
    8386        //参照タイプを判別
    84         if(name[i4]=='.') *pRefType=DEF_OBJECT;
    85         else *pRefType=DEF_PTR_OBJECT;
     87        if(name[i4]=='.')
     88        {
     89            referenceFind = RefDot;
     90        }
     91        else
     92        {
     93            referenceFind = RefPointer;
     94        }
    8695
    8796        if(i4==0) GetWithName(ObjectName);
     
    109118        //オブジェクト名を取得
    110119        char ObjectName[VN_SIZE];
    111         int RefType;
    112         SplitObjectName(fullCallName,ObjectName,&RefType);
     120        ReferenceKind referenceKind;
     121        SplitObjectName(fullCallName,ObjectName, referenceKind );
    113122
    114123
     
    131140
    132141        if( isCallOn ){
    133             if( !Opcode_CallProc(lpszParms,pUserProc,0,ObjectName,RefType) ){
     142            if( !Opcode_CallProc(lpszParms,pUserProc,0,ObjectName ) ){
    134143                return false;
    135144            }
     
    192201    //オブジェクト名を取得
    193202    char ObjectName[VN_SIZE];
    194     int RefType;
    195     SplitObjectName(VarName,ObjectName,&RefType);
     203    ReferenceKind referenceKind;
     204    SplitObjectName(VarName,ObjectName, referenceKind );
    196205
    197206    //オーバーロード用の関数リストを作成
     
    216225    if(pUserProc){
    217226        //呼び出し
    218         Opcode_CallProc(Parameter,pUserProc,0,ObjectName,RefType);
     227        Opcode_CallProc(Parameter,pUserProc,0,ObjectName);
    219228
    220229        resultType = pUserProc->ReturnType();
     
    235244    //オブジェクト名を取得
    236245    char ObjectName[VN_SIZE];
    237     int RefType;
    238     SplitObjectName(VarName,ObjectName,&RefType);
     246    ReferenceKind referenceKind;
     247    SplitObjectName(VarName,ObjectName, referenceKind );
    239248
    240249    //オーバーロード用の関数リストを作成
Note: See TracChangeset for help on using the changeset viewer.