Index: BasicCompiler64/increment.cpp
===================================================================
--- BasicCompiler64/increment.cpp	(revision 11)
+++ BasicCompiler64/increment.cpp	(revision 75)
@@ -3,8 +3,4 @@
 
 void IncDec(int idCalc, char *lpszLeft, char *lpszRight){
-	int VarType;
-	LONG_PTR lpVarIndex;
-	RELATIVE_VAR VarRelativeVar;
-
 
 	///////////////////////////
@@ -12,9 +8,10 @@
 	///////////////////////////
 
+	RELATIVE_VAR VarRelativeVar;
+	Type varType;
 	if(!GetVarOffsetReadWrite(
 		lpszLeft,
-		&VarType,
 		&VarRelativeVar,
-		&lpVarIndex)) return;
+		varType)) return;
 
 	//変数オフセットを一時退避
@@ -30,9 +27,9 @@
 
 	int reg;
-	if(VarType==DEF_DOUBLE){
+	if( varType.IsDouble() ){
 		reg=REG_XMM0;
 		SetXmmReg_DoubleVariable(&VarRelativeVar,reg);
 	}
-	else if(VarType==DEF_SINGLE){
+	else if( varType.IsSingle() ){
 		reg=REG_XMM0;
 		SetXmmReg_SingleVariable(&VarRelativeVar,reg);
@@ -40,9 +37,9 @@
 	else{
 		reg=REG_RAX;
-		SetReg_WholeVariable(VarType,&VarRelativeVar,reg);
+		SetReg_WholeVariable(varType.GetBasicType(),&VarRelativeVar,reg);
 	}
 
 
-	if(IsWholeNumberType(VarType)&&lstrcmp(lpszRight,"1")==0&&
+	if(varType.IsWhole()&&lstrcmp(lpszRight,"1")==0&&
 		(idCalc==CALC_ADDITION||idCalc==CALC_SUBTRACTION)){
 			if(idCalc==CALC_ADDITION){
@@ -60,9 +57,8 @@
 
 		//右辺を計算
-		int CalcType;
-		LONG_PTR lpCalcIndex;
+		Type calcType;
 		if(reg==REG_RAX) reg=REG_RCX;
 		else reg=REG_RAX;
-		CalcType=NumOpe(&reg,lpszRight,VarType,lpVarIndex,&lpCalcIndex);
+		NumOpe(&reg,lpszRight,varType,calcType);
 
 		//レジスタのブロッキングを解除
@@ -70,8 +66,7 @@
 
 
-		if(IsPtrType(VarType)&&IsWholeNumberType(CalcType)&&(!IsPtrType(CalcType))){
+		if(varType.IsPointer()&&calcType.IsWhole()&&(!calcType.IsPointer())){
 			//左辺がポインタ型、右辺が整数型の場合は、エラーをださないようにする
-			CalcType=VarType;
-			lpCalcIndex=lpVarIndex;
+			calcType = varType;
 		}
 
@@ -81,5 +76,5 @@
 		/////////////////////////////////
 
-		CheckDifferentType(VarType,lpVarIndex,CalcType,lpCalcIndex,0,0);
+		CheckDifferentType(varType,calcType,0,0);
 
 
@@ -88,5 +83,5 @@
 
 		//左辺用レジスタ
-		if(IsRealNumberType(VarType))
+		if(varType.IsReal())
 			pobj_reg->LockXmmReg();
 		else
@@ -94,23 +89,23 @@
 
 		//右辺値レジスタ
-		if(VarType==DEF_DOUBLE)
-			ChangeTypeToXmm_Double(CalcType,
+		if(varType.IsDouble())
+			ChangeTypeToXmm_Double(calcType.GetBasicType(),
 				pobj_reg->LockXmmReg(),
 				pobj_reg->GetNextReg());
-		else if(VarType==DEF_SINGLE)
-			ChangeTypeToXmm_Single(CalcType,
+		else if(varType.IsSingle())
+			ChangeTypeToXmm_Single(calcType.GetBasicType(),
 				pobj_reg->LockXmmReg(),
 				pobj_reg->GetNextReg());
 		else
-			ChangeTypeToWhole(CalcType,VarType,
+			ChangeTypeToWhole(calcType.GetBasicType(),varType.GetBasicType(),
 				pobj_reg->LockReg(),
 				pobj_reg->GetNextXmmReg());
 
-		int type[255],sp;
+		int type_stack[255],sp;
 		LONG_PTR index_stack[255];
-		type[0]=VarType;
-		type[1]=VarType;
-		index_stack[0]=lpVarIndex;
-		index_stack[1]=lpVarIndex;
+		type_stack[0]=varType.GetBasicType();
+		type_stack[1]=varType.GetBasicType();
+		index_stack[0]=varType.GetIndex();
+		index_stack[1]=varType.GetIndex();
 		sp=2;
 
@@ -119,26 +114,26 @@
 			case CALC_OR:
 			case CALC_AND:
-				CalcTwoTerm_Logical(idCalc,type,index_stack,&sp);
+				CalcTwoTerm_Logical(idCalc,type_stack,index_stack,&sp);
 				break;
 			case CALC_SHL:
 			case CALC_SHR:
-				Calc_Shift(idCalc,type,&sp);
+				Calc_Shift(idCalc,type_stack,&sp);
 				break;
 			case CALC_ADDITION:
 			case CALC_SUBTRACTION:
 			case CALC_PRODUCT:
-				CalcTwoTerm_Arithmetic(idCalc,type,index_stack,&sp);
+				CalcTwoTerm_Arithmetic(idCalc,type_stack,index_stack,&sp);
 				break;
 			case CALC_MOD:
-				Calc_Mod(type,index_stack,&sp);
+				Calc_Mod(type_stack,index_stack,&sp);
 				break;
 			case CALC_QUOTIENT:
-				Calc_Divide(type,&sp,VarType);
+				Calc_Divide(type_stack,&sp,varType.GetBasicType());
 				break;
 			case CALC_INTQUOTIENT:
-				Calc_IntDivide(type,index_stack,&sp);
+				Calc_IntDivide(type_stack,index_stack,&sp);
 				break;
 			case CALC_POWER:
-				Calc_Power(type,&sp);
+				Calc_Power(type_stack,&sp);
 				break;
 		}
@@ -160,4 +155,4 @@
 	}
 
-	SetVariableFromRax(VarType,VarType,&VarRelativeVar);
+	SetVariableFromRax(varType.GetBasicType(),varType.GetBasicType(),&VarRelativeVar);
 }
