Index: BasicCompiler64/Compile_Var.cpp
===================================================================
--- BasicCompiler64/Compile_Var.cpp	(revision 105)
+++ BasicCompiler64/Compile_Var.cpp	(revision 106)
@@ -388,54 +388,21 @@
 	else lstrcpy(variable,NameBuffer);
 
+	// 名前空間を分離
+	char namespaceStr[VN_SIZE]="", simpleName[VN_SIZE];
+	Smoothie::Meta::namespaceScopesCollection.SplitNamespace( variable, namespaceStr, simpleName );
+
+	// 先頭オブジェクトまたはクラス名と入れ子メンバに分割
 	CClass::RefType refType;
-	if( FormatUseProcReturnObject( variable, VarName, array, refType, member ) ){
-		// 戻り値オブジェクトのメンバを直接参照しているとき
-		//例: func().member
-
-		// TODO: 消す
-		SetError();
-		return false;
-		/*
-		void *pInfo;
-		int idProc=GetProc(VarName,(void **)&pInfo);
-
-		if(idProc){
-			pRelativeVar->dwKind=VAR_DIRECTMEM;
-
-			Type type;
-
-			//////////////////////////////////////////////////////
-			/////    レジスタ資源のバックアップ
-			{	BACKUP_REGISTER_RESOURCE
-			//////////////////////////////////////////////////////
-
-				////////////////
-				// 呼び出し
-				////////////////
-
-				CallProc(idProc,pInfo,VarName,array,type);
-
-				//戻り値をr11にコピー
-				op_mov_RR( REG_R11, REG_RAX );
-
-			/////////////////////////////////////////////
-			//////   レジスタ資源を復元
-				RESTORE_REGISTER_RESOURCE
-			}////////////////////////////////////////////
-
-			if(!_member_offset(
-				isErrorEnabled,
-				isWriteAccess,
-				type.GetClass(),
-				member,pRelativeVar,resultType,0)) return false;
-
-			return true;
-		}*/
-	}
-
-
-
-	lstrcpy(VarName,variable);
-	GetVarFormatString(VarName,array,lpPtrOffset,member,refType);
+	char member[VN_SIZE],array[VN_SIZE],lpPtrOffset[VN_SIZE];
+	GetVarFormatString(simpleName,array,lpPtrOffset,member,refType);
+
+	// 名前空間を分離していた場合は結合
+	char VarName[VN_SIZE];
+	if( namespaceStr[0] ){
+		sprintf( VarName, "%s.%s", namespaceStr, simpleName );
+	}
+	else{
+		lstrcpy( VarName, simpleName );
+	}
 
 	const int *pSubScripts;
