Changeset 75 in dev for BasicCompiler32/Opcode.h


Ignore:
Timestamp:
Mar 20, 2007, 4:36:16 AM (17 years ago)
Author:
dai_9181
Message:

TYPEINFO→Typeへのリファクタリングを実施。64bitはほぼ完了。32bitが全般的に未完成。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler32/Opcode.h

    r73 r75  
    102102//NumOpe.cpp
    103103void PushReturnValue(int type);
    104 int NumOpe(const char *Command,int BaseType,LONG_PTR lpBaseIndex,LONG_PTR *plpIndex,BOOL *pbUseHeap=0);
     104bool NumOpe( const char *Command,
     105           const Type &baseType,
     106           Type &resultType,
     107           BOOL *pbUseHeap = NULL );
    105108
    106109//NumOpe_Arithmetic.cpp
     
    136139//Compile_Set_Var.cpp
    137140BOOL IsUse_ecx(RELATIVE_VAR *pRelativeVar);
    138 void SetStructVariable(LONG_PTR lpVarIndex,int CalcType,LONG_PTR lpCalcIndex,BOOL bUseHeap);
     141void SetStructVariable( const Type &varType, const Type &calcType, BOOL bUseHeap);
    139142void SetRealVariable(int VarType, int CalcType, RELATIVE_VAR *pRelativeVar);
    140143void SetWholeVariable( int varSize,int calcType, RELATIVE_VAR *pRelative );
     
    174177
    175178//Compile_Object.cpp
    176 void Operator_New( CClass &classObj, const char *objectSizeStr, const char *parameter, const TYPEINFO &baseTypeInfo );
    177 int Operator_New(const char *Parameter,LONG_PTR *plpIndex,const TYPEINFO &baseTypeInfo );
     179void Operator_New( const CClass &classObj, const char *objectSizeStr, const char *parameter, const Type &baseType );
    178180void OpcodeDelete(const char *Parameter, bool isSweeping);
    179181
     
    182184void GetWithName(char *buffer);
    183185void SetThisPtrToReg(int reg);
    184 BOOL GetVarOffset(bool isErrorEnabled,bool isWriteAccess,const char *NameBuffer,int *pType,RELATIVE_VAR *pRelativeVar,LONG_PTR *plpIndex,int *pss=0);
    185 BOOL SetInitGlobalData(int offset,int type,LONG_PTR lpIndex,int *SubScripts,char *InitBuf);
     186bool GetVarOffset(bool isErrorEnabled,bool isWriteAccess,const char *NameBuffer,RELATIVE_VAR *pRelativeVar,Type &resultType,int *pss = 0);
     187bool SetInitGlobalData(int offset,const Type &type,const int *SubScripts,char *InitBuf);
    186188#define DIMFLAG_INITDEBUGVAR            1
    187189#define DIMFLAG_NONCALL_CONSTRACTOR     2
    188190#define DIMFLAG_STATIC                  4
    189191#define DIMFLAG_CONST                   8
    190 void dim(bool isRef, char *VarName,int *SubScripts,TYPEINFO &TypeInfo,int TypeSize,char *InitBuf,char *ConstractParameter,DWORD dwFlags);
    191 void OpcodeDim(char *Parameter,DWORD dwFlag);
     192void dim(bool isRef, char *VarName,int *SubScripts,Type &type,char *InitBuf,char *ConstractParameter,DWORD dwFlags);
    192193void SetVarPtrToEax(RELATIVE_VAR *pRelativeVar);
    193194
     
    201202class ParamImpl{
    202203    char *Parms[255];
    203     TYPEINFO types[255];
     204    Type types[255];
    204205    int ParmsNum;
    205206
    206     TYPEINFO ReturnTypeInfo;
     207    Type ReturnTypeInfo;
    207208
    208209    //一時オブジェクト管理用
     
    213214public:
    214215    ParamImpl(const char *buffer);
    215     ParamImpl(const PARAMETER_INFO *pParamInfo, const int ParmNum);
    216     ParamImpl::ParamImpl(const Parameters &params);
     216    ParamImpl(const Parameters &params);
    217217    ~ParamImpl();
    218     void SetReturnType(TYPEINFO *pTypeInfo);
     218    void SetReturnType( const Type &returnType );
    219219
    220220private:
    221     BOOL _overload_check( Parameters &params,TYPEINFO *pReturnTypeInfo,int overload_level);
    222     SubInfo *OverloadSolutionWithReturnType( const char *name, std::vector<SubInfo *> &subs );
     221    BOOL _overload_check( const Parameters &params,Type *pReturnTypeInfo,int overload_level);
     222    UserProc *OverloadSolutionWithReturnType( const char *name, std::vector<UserProc *> &subs );
    223223public:
    224     SubInfo *OverloadSolution( const char *name, std::vector<SubInfo *> &subs );
    225 
    226     BOOL ErrorCheck(const char *FuncName,PARAMETER_INFO *ppi,int pi_num,int SecondParmNum);
    227     bool ErrorCheck( const char *procName, const Parameters &params, int SecondParmNum );
    228     void MacroParameterSupport(PARAMETER_INFO *ppi);
     224    UserProc *OverloadSolution( const char *name, std::vector<UserProc *> &subs );
     225
     226    bool ErrorCheck( const string &procName, const Parameters &params, int SecondParmNum = -1 );
    229227    void MacroParameterSupport( const Parameters &params );
    230228    void SetStructParameter(CClass *pobj_Class,LPSTR Parameter);
    231     int SetParameter(const char *FuncName,PARAMETER_INFO *ppi,int pi_num,int SecondParmNum);
    232     int SetParameter( const char *procName, const Parameters &params, int SecondParmNum );
     229    int SetParameter( const string &procName, const Parameters &params, int SecondParmNum = -1 );
    233230
    234231    //一時オブジェクトパラメータの生成と破棄
    235     int NewTempParameters( const char *FuncName,PARAMETER_INFO *ppi,int pi_num,int SecondParmNum );
    236     int NewTempParameters( const char *procName, const Parameters &params, int SecondParmNum );
     232    int NewTempParameters( const string &procName, const Parameters &params, int SecondParmNum = -1 );
    237233    void DeleteTempParameters();
    238234};
     
    241237void AddLocalVarAddrSchedule();
    242238#define PROCFLAG_NEW    1
    243 int Opcode_CallProcPtr(char *variable,char *Parameter,PROCPTRINFO *pi,LONG_PTR *plpIndex);
    244 void Opcode_CallProc(const char *Parameter,SubInfo *psi,DWORD dwFlags,char *ObjectName,int RefType);
    245 int Opcode_CallDllProc(char *Parameter,DECLAREINFO *pdi,LONG_PTR *plpIndex);
     239int Opcode_CallProcPtr(char *variable,char *Parameter,ProcPointer *pProcPointer,LONG_PTR *plpIndex);
     240void Opcode_CallProc(const char *Parameter,UserProc *pUserProc,DWORD dwFlags,char *ObjectName,int RefType);
     241int Opcode_CallDllProc(char *Parameter,DllProc *pDllProc,LONG_PTR *plpIndex);
    246242
    247243//Compile_ProcOp.cpp
     
    251247int GetFunctionType(int FuncNum);
    252248int GetFunctionFromName(char *FuncName);
    253 void Opcode_CallFunc( const char *Parameter, const int FuncNum, TYPEINFO &ReturnTypeInfo );
     249void Opcode_CallFunc( const char *Parameter, const int FuncNum, Type &ReturnTypeInfo );
    254250
    255251//OperatorProc.cpp
    256252void FreeTempObject(int reg,CClass *pobj_c);
    257 int CallOperatorProc(int idCalc,TYPEINFO *pBaseTypeInfo,int *type,LONG_PTR *index_stack,BOOL *bUseHeap,int &sp);
    258 void CallCastOperatorProc(int &CalcType,LONG_PTR &lpCalcIndex,BOOL bCalcUseHeap,int ToType,LONG_PTR lpToIndex);
    259 void CallIndexerGetterProc(CClass *pobj_Class,char *ObjectName,char *Parameter,TYPEINFO &RetTypeInfo);
     253int CallOperatorProc(int idCalc,Type *pBaseTypeInfo,int *type,LONG_PTR *index_stack,BOOL *bUseHeap,int &sp);
     254void CallCastOperatorProc(Type &calcType,BOOL bCalcUseHeap,const Type &toType);
     255void CallIndexerGetterProc(CClass *pobj_Class,char *ObjectName,char *Parameter,Type &RetTypeInfo);
    260256
    261257//Compile_Statement.cpp
     
    268264void OpcodeContinue(void);
    269265void OpcodeExitSub(void);
    270 void OpcodeSelect(char *Parameter);
     266void OpcodeSelect(const char *Parameter);
    271267void OpcodeCase(char *Parameter);
    272268void OpcodeGosub(char *Parameter);
     
    344340void fpu_cast_end();
    345341
    346 void op_call(SubInfo *psi);
     342void op_call(UserProc *pUserProc);
Note: See TracChangeset for help on using the changeset viewer.