Changeset 75 in dev for BasicCompiler32/Opcode.h
- Timestamp:
- Mar 20, 2007, 4:36:16 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler32/Opcode.h
r73 r75 102 102 //NumOpe.cpp 103 103 void PushReturnValue(int type); 104 int NumOpe(const char *Command,int BaseType,LONG_PTR lpBaseIndex,LONG_PTR *plpIndex,BOOL *pbUseHeap=0); 104 bool NumOpe( const char *Command, 105 const Type &baseType, 106 Type &resultType, 107 BOOL *pbUseHeap = NULL ); 105 108 106 109 //NumOpe_Arithmetic.cpp … … 136 139 //Compile_Set_Var.cpp 137 140 BOOL IsUse_ecx(RELATIVE_VAR *pRelativeVar); 138 void SetStructVariable( LONG_PTR lpVarIndex,int CalcType,LONG_PTR lpCalcIndex,BOOL bUseHeap);141 void SetStructVariable( const Type &varType, const Type &calcType, BOOL bUseHeap); 139 142 void SetRealVariable(int VarType, int CalcType, RELATIVE_VAR *pRelativeVar); 140 143 void SetWholeVariable( int varSize,int calcType, RELATIVE_VAR *pRelative ); … … 174 177 175 178 //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 ); 179 void Operator_New( const CClass &classObj, const char *objectSizeStr, const char *parameter, const Type &baseType ); 178 180 void OpcodeDelete(const char *Parameter, bool isSweeping); 179 181 … … 182 184 void GetWithName(char *buffer); 183 185 void 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);186 bool GetVarOffset(bool isErrorEnabled,bool isWriteAccess,const char *NameBuffer,RELATIVE_VAR *pRelativeVar,Type &resultType,int *pss = 0); 187 bool SetInitGlobalData(int offset,const Type &type,const int *SubScripts,char *InitBuf); 186 188 #define DIMFLAG_INITDEBUGVAR 1 187 189 #define DIMFLAG_NONCALL_CONSTRACTOR 2 188 190 #define DIMFLAG_STATIC 4 189 191 #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); 192 void dim(bool isRef, char *VarName,int *SubScripts,Type &type,char *InitBuf,char *ConstractParameter,DWORD dwFlags); 192 193 void SetVarPtrToEax(RELATIVE_VAR *pRelativeVar); 193 194 … … 201 202 class ParamImpl{ 202 203 char *Parms[255]; 203 T YPEINFOtypes[255];204 Type types[255]; 204 205 int ParmsNum; 205 206 206 T YPEINFOReturnTypeInfo;207 Type ReturnTypeInfo; 207 208 208 209 //一時オブジェクト管理用 … … 213 214 public: 214 215 ParamImpl(const char *buffer); 215 ParamImpl(const PARAMETER_INFO *pParamInfo, const int ParmNum); 216 ParamImpl::ParamImpl(const Parameters ¶ms); 216 ParamImpl(const Parameters ¶ms); 217 217 ~ParamImpl(); 218 void SetReturnType( TYPEINFO *pTypeInfo);218 void SetReturnType( const Type &returnType ); 219 219 220 220 private: 221 BOOL _overload_check( Parameters ¶ms,TYPEINFO*pReturnTypeInfo,int overload_level);222 SubInfo *OverloadSolutionWithReturnType( const char *name, std::vector<SubInfo*> &subs );221 BOOL _overload_check( const Parameters ¶ms,Type *pReturnTypeInfo,int overload_level); 222 UserProc *OverloadSolutionWithReturnType( const char *name, std::vector<UserProc *> &subs ); 223 223 public: 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 ¶ms, 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 ¶ms, int SecondParmNum = -1 ); 229 227 void MacroParameterSupport( const Parameters ¶ms ); 230 228 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 ¶ms, int SecondParmNum ); 229 int SetParameter( const string &procName, const Parameters ¶ms, int SecondParmNum = -1 ); 233 230 234 231 //一時オブジェクトパラメータの生成と破棄 235 int NewTempParameters( const char *FuncName,PARAMETER_INFO *ppi,int pi_num,int SecondParmNum ); 236 int NewTempParameters( const char *procName, const Parameters ¶ms, int SecondParmNum ); 232 int NewTempParameters( const string &procName, const Parameters ¶ms, int SecondParmNum = -1 ); 237 233 void DeleteTempParameters(); 238 234 }; … … 241 237 void AddLocalVarAddrSchedule(); 242 238 #define PROCFLAG_NEW 1 243 int Opcode_CallProcPtr(char *variable,char *Parameter,P ROCPTRINFO *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,D ECLAREINFO *pdi,LONG_PTR *plpIndex);239 int Opcode_CallProcPtr(char *variable,char *Parameter,ProcPointer *pProcPointer,LONG_PTR *plpIndex); 240 void Opcode_CallProc(const char *Parameter,UserProc *pUserProc,DWORD dwFlags,char *ObjectName,int RefType); 241 int Opcode_CallDllProc(char *Parameter,DllProc *pDllProc,LONG_PTR *plpIndex); 246 242 247 243 //Compile_ProcOp.cpp … … 251 247 int GetFunctionType(int FuncNum); 252 248 int GetFunctionFromName(char *FuncName); 253 void Opcode_CallFunc( const char *Parameter, const int FuncNum, T YPEINFO&ReturnTypeInfo );249 void Opcode_CallFunc( const char *Parameter, const int FuncNum, Type &ReturnTypeInfo ); 254 250 255 251 //OperatorProc.cpp 256 252 void FreeTempObject(int reg,CClass *pobj_c); 257 int CallOperatorProc(int idCalc,T YPEINFO*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,T YPEINFO&RetTypeInfo);253 int CallOperatorProc(int idCalc,Type *pBaseTypeInfo,int *type,LONG_PTR *index_stack,BOOL *bUseHeap,int &sp); 254 void CallCastOperatorProc(Type &calcType,BOOL bCalcUseHeap,const Type &toType); 255 void CallIndexerGetterProc(CClass *pobj_Class,char *ObjectName,char *Parameter,Type &RetTypeInfo); 260 256 261 257 //Compile_Statement.cpp … … 268 264 void OpcodeContinue(void); 269 265 void OpcodeExitSub(void); 270 void OpcodeSelect(c har *Parameter);266 void OpcodeSelect(const char *Parameter); 271 267 void OpcodeCase(char *Parameter); 272 268 void OpcodeGosub(char *Parameter); … … 344 340 void fpu_cast_end(); 345 341 346 void op_call( SubInfo *psi);342 void op_call(UserProc *pUserProc);
Note:
See TracChangeset
for help on using the changeset viewer.