--- spal60sr\src\TSSGCtrl\SSGCtrl.original.h	Mon May 26 13:40:08 2003
+++ spal60sr\src\TSSGCtrl\SSGCtrl.h	Mon May 26 13:40:08 2003
@@ -1,6 +1,11 @@
 #ifndef SSGCtrlH
 #define SSGCtrlH
 
+#define FIX_PARSER           1
+#define FIX_LOOP_BYTE_ARRAY  1
+#define LOCAL_MEMORY_SUPPORT 1
+#define REPEAT_INDEX         1
+
 #pragma warning(disable:4786)
 #pragma warning(disable:4503)
 //---------------------------------------------------------------------
@@ -87,7 +92,11 @@
     void SeekScriptIndex(string FileName, vector<string> *Dest, vector<TSSGScriptStruct> *ScriptVec, TSSGFindReportListnerBase *Listner);
 	void LoopSSRFile(vector< list< pair<byte, string> > > &FormatVec,
 		vector<string> &Dest, unsigned long LoopVal);
+#if !defined(REPEAT_INDEX) || !REPEAT_INDEX
     void EnumReadSSG(vector<string> &SSGFile, stack<TSSDir*> *ParentStack, TDialogAdjustmentAttribute *ADJElem);
+#else
+	void EnumReadSSG(vector<string> &SSGFile, stack<TSSDir*> *ParentStack, TDialogAdjustmentAttribute *ADJElem, DWORD RepeatIndex = 0, DWORD ParentRepeat = MAXDWORD);
+#endif
 	void EnumReadSSR(vector<string> &File, vector< list< pair<byte, string> > > *FormatVec);
 	string AddressNaming(TSSGSubject *SSGS, const string &NameStr);
 
@@ -102,7 +111,11 @@
     static string GetVersion(void){ return string("6.0"); }    //ver֐
 
 	unsigned long ReadADJFile(TDialogAdjustmentAttribute *AElem, vector<TSSGSubject*> *SubjectVec);
+#if !defined(REPEAT_INDEX) || !REPEAT_INDEX
 	vector<string> ReadSSRFile(string &Code);
+#else
+	vector<string> ReadSSRFile(string &Code, vector<DWORD> &Indices);
+#endif
     void ReadSSG(vector<string> &SSGFile);
 
     vector<TSSGScriptStruct> GetSSGScriptVec(TSSGFindReportListnerBase *Listner);
@@ -133,14 +146,26 @@
 
 	//TSSGSubjectp֐
     vector<string> * GetSSGDataFile(TSSGSubject *SSGS, string FName, string DefaultExt, string *CurrentDir=NULL);
+#if !defined(FIX_PARSER) || !FIX_PARSER
 	unsigned long Parsing(TSSGSubject *SSGS, const string &Src, unsigned long Val);
+#else
+	unsigned long Parsing(TSSGSubject *SSGS, const string &Src, ...);
+#endif
 	double ParsingDouble(TSSGSubject *SSGS, const string &Src, double Val);
+#if !defined(SUBJECT_STATUS) || !SUBJECT_STATUS
 	bool IsEnabled(TSSGSubject *SSGS);
+#else
+	bool IsEnabled(TSSGSubject *SSGS, BOOLEAN evaluateAtRead = FALSE);
+#endif
 	bool IsChildRWProhibit(TSSGSubject *SSGS);
 	vector<string> * GetCautionVec(TSSGSubject *SSGS);
     unsigned long AddressAttributeFilter(TSSGSubject *SSGS, unsigned long *Address, unsigned long Mode=ssgCtrl::atALL);
 	string LoopCodeToByteCode(TSSGSubject *SSGS, string Code, unsigned long StartAddress, unsigned long OffsetAddress);
+#if !defined(FIX_LOOP_BYTE_ARRAY) || !FIX_LOOP_BYTE_ARRAY
     vector<TProcessAccessElementBase*> StrToProcessAccessElementVec(TSSGSubject *SSGS, string Code);
+#else
+	vector<TProcessAccessElementBase *> StrToProcessAccessElementVec(TSSGSubject *SSGS, string Code, unsigned long Rel = 0);
+#endif
 	vector<TProcessAccessElementBase*> MakeDataCode(TSSGSubject *SSGS, string OnCode, string &OffCode, bool IsOn, unsigned long StartAddress, unsigned long OffsetAddress);
 	bool Funneling(TSSGSubject *SSGS, const string &FileName, unsigned long Val);
 	bool CheckFunnel(TSSGSubject *SSGS, unsigned long Val);
@@ -157,7 +182,11 @@
 
 
 	//TProcessCtrlp֐(KXXiփZ[W𑗂܂)
+#if !defined(LOCAL_MEMORY_SUPPORT) || !LOCAL_MEMORY_SUPPORT
 	HANDLE Open(TSSGSubject *SSGS, DWORD Mode);
+#else
+	HANDLE Open(TSSGSubject *SSGS, DWORD Mode, LPCSTR addressStr = NULL);
+#endif
 	unsigned long Read	(TSSGSubject *SSGS, HANDLE ProcessHandle, DWORD *Address, vector<TProcessAccessElementBase*> &AEVec);
 	unsigned long Write	(TSSGSubject *SSGS, HANDLE ProcessHandle, DWORD *Address, vector<TProcessAccessElementBase*> &AEVec);
 	long Compare		(TSSGSubject *SSGS, HANDLE ProcessHandle, DWORD *Address, vector<TProcessAccessElementBase*> &AEVec);
