Changeset 73 in dev for BasicCompiler_Common/Parameter.h


Ignore:
Timestamp:
Mar 16, 2007, 11:07:14 PM (17 years ago)
Author:
dai_9181
Message:

Parameterクラスを適用。32bit側は動くようになったので、64bitのほうを調整する。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler_Common/Parameter.h

    r71 r73  
    55
    66class Parameter;
    7 typedef vector<Parameter> Parameters;
     7typedef vector<Parameter *> Parameters;
    88
    99class Parameter : public Type
     
    1616public:
    1717    Parameter( const string &varName, const Type &type, bool isRef = false ):
    18         Type( type )
     18        Type( type ),
     19        varName( varName ),
     20        isRef( isRef ),
     21        isArray( false )
    1922    {
    20         this->varName = varName;
    21         this->isRef = isRef;
    22         isArray = false;
     23        subScripts[0] = -1;
     24    }
     25    Parameter( const Parameter &param ):
     26        Type( param ),
     27        varName( param.varName ),
     28        isRef( param.isRef ),
     29        isArray( false )
     30    {
     31        subScripts[0] = -1;
     32        if( param.isArray ){
     33            SetArray( param.subScripts );
     34        }
    2335    }
    2436    ~Parameter(){}
     
    2739        isArray = true;
    2840        memcpy( this->subScripts, pSubScripts, sizeof(int) * MAX_ARRAYDIM );
     41    }
     42
     43    const string &GetVarName() const
     44    {
     45        return varName;
    2946    }
    3047
     
    4663        else{
    4764
    48             if( this->isRef && this->BasicType() == DEF_ANY &&
     65            if( this->isRef && this->GetBasicType() == DEF_ANY &&
    4966                param.isRef == false && param.IsPointer()
    5067                ||
    5168                this->isRef == false && this->IsPointer() &&
    52                 param.isRef && param.BasicType() == DEF_ANY ){
     69                param.isRef && param.GetBasicType() == DEF_ANY ){
    5370                    /* ByRef var As Any
    5471                            と
     
    7188        int max = (int)paramsA.size();
    7289        for( int i=0; i<max; i++ ){
    73             if( !paramsA[i].Equals( paramsB[i] ) ){
     90            if( !paramsA[i]->Equals( *paramsB[i] ) ){
    7491                return false;
    7592            }
Note: See TracChangeset for help on using the changeset viewer.