abc プロジェクト
メンバ関数名 | Exec |
定義ファイル名 | pass5.cpp |
定義行 | 131 |
所属名 | TPass5 |
アクセス属性 | public |
宣言形式 | void Exec ( ) |
概要 | パス5の実行 TureResionListを参照して、複数のチューニングリージョンに対応したソースコー ドを出力する。 |
戻り値 | |
パラメタ説明 | |
機能説明 | |
備考 | |
呼出し元関数一覧表
呼出し先関数一覧表
参照外部変数一覧表
参照メンバ変数一覧表
|
名称 |
定義ファイル名 |
定義行 |
1 |
TPass5::FittingF |
pass5.h |
44 |
2 |
TPass5::fpOutDynamic |
pass5.h |
41 |
3 |
TPass5::fpOutInstall |
pass5.h |
39 |
4 |
TPass5::fpOutStatic |
pass5.h |
40 |
5 |
TPass5::TuneRegionList |
pass5.h |
36 |
参照先一覧表
関数論理チャート
| +----------------------+
131 +--+ void TPass5::Exec() |
132 | { |
+--+-------------------+
133 +--- int i,j;
134 +--- TTuneRegion *TuneRegion;
135 +--- AnsiString s,s1,s2;
136 |
137 +--- FittingF = false; // Fittingありの場合の変数定義追加用
| +------------------------------------------------+
138 +--+ for(i = 0 ; i < TuneRegionList->Count ; i++){ |
| +--+---------------------------------------------+
139 | +--- TuneRegion = (TTuneRegion *)TuneRegionList->Items[i];
| | +------------------------------------------+
140 | +--+ if(TuneRegion->TuneGroup == tgInstall){ |
| | +--+---------------------------------------+
| | | +------------------------------------+
141 | | +--+ if(TuneRegion->FittingType != 0){ |
| | | +--+---------------------------------+
142 | | | +--- FittingF = true; // Fittingありの場合の変数定義追加用
| | | +-+---+
143 | | | | } |
| | | +-----+
| | +-+---+
144 | | | } |
| | +-----+
| +-+---+
145 | | } |
| +-----+
146 +--- //
147 | // TRの名前の重複をチェックする。
148 | // もし、あいまいな場合には、エラーとする。
149 | // 例えば、ABC と ABC2 は、あいまいとなる。(index関数で検索しているため)
150 | // .Pos()で検索して、2箇所存在する場合にエラーとなる。
151 | //
| +------------------------------------------------+
152 +--+ for(i = 0 ; i < TuneRegionList->Count ; i++){ |
| +--+---------------------------------------------+
153 | +--- TuneRegion = (TTuneRegion *)TuneRegionList->Items[i];
154 | +--- s1 = TuneRegion->Name; // TRの名前
| | +------------------------------------------------+
155 | +--+ for(j = 0 ; j < TuneRegionList->Count ; j++){ |
| | +--+---------------------------------------------+
| | | +--------------+
156 | | +--+ if(j == i){ |
| | | +--+-----------+
| | | | +------------+
157 | | | +--+ continue; |
| | | | +------------+
| | | +-+---+
158 | | | | } |
| | | +-----+
159 | | +--- TuneRegion = (TTuneRegion *)TuneRegionList->Items[j];
160 | | +--- s2 = TuneRegion->Name;
| | | +------------------------------------------------+
161 | | +--+ if(s2.Pos(s1) != 0){ // 重複する文字列あり |
| | | +--+---------------------------------------------+
162 | | | +--- s = "名前の一部が重複しています。( "+ s1+" , "+s2+" )";
163 | | | +--- MainF->err(s);
| | | | +--------+
164 | | | +--+ break; |
| | | | +--------+
| | | +-+---+
165 | | | | } |
| | | +-----+
| | +-+---+
166 | | | } |
| | +-----+
| +-+---+
167 | | } |
| +-----+
168 +--- // 文字列の長さを決定する。(全てのTRの名前+,の長さとする)
| +------------------------------------------------+
169 +--+ for(i = 0 ; i < TuneRegionList->Count ; i++){ |
| +--+---------------------------------------------+
170 | +--- TuneRegion = (TTuneRegion *)TuneRegionList->Items[i];
171 | +--- s += TuneRegion->Name + ",";
| +-+---+
172 | | } |
| +-----+
173 +--- MainF->CharMaxLen = s.Length()-1;
174 |
175 +--- MakeControlCode(); // ABCLib/ABCLib_ControlRoutines.f 作成
176 |
| +------------------------------------------------+
177 +--+ for(i = 0 ; i < TuneRegionList->Count ; i++){ |
| +--+---------------------------------------------+
178 | +--- MainF->printNoLog("TuneRegion = "+IntToStr(i+1)+"/"+IntToStr(TuneRegionList->Count));
179 | +--- TuneRegion = (TTuneRegion *)TuneRegionList->Items[i];
| | +------------------------------------------+
180 | +--+ if(TuneRegion->TuneGroup == tgInstall){ |
| | +--+---------------------------------------+
181 | | +--- TuneRegion->OutputExecCode(fpOutInstall);
| | +-+---+
182 | | | } |
| | +-+---+
| | +-+---------------------------------------------+
182 | | | else if(TuneRegion->TuneGroup == tgStatic){ |
| | +-+---------------------------------------------+
183 | | +--- TuneRegion->OutputExecCode(fpOutStatic);
| | +-+---+
184 | | | } |
| | +-+---+
| | +-+---------------------------------------------+
184 | | | else if(TuneRegion->TuneGroup == tgDynamic){ |
| | +-+---------------------------------------------+
185 | | +--- TuneRegion->OutputExecCode(fpOutDynamic);
| | +-+---+
186 | | | } |
| | +-----+
| | +------------------------+
187 | +--+ if(MainF->CloseReqF){ |
| | +--+---------------------+
| | | +----------+
188 | | +--+ return; |
| | | +----------+
| | +-+---+
189 | | | } |
| | +-----+
| +-+---+
190 | | } |
| +-----+
191 |
192 +--- MakeFunctionCode(); // ABCLib/ABCLib_(元のソースファイル名).f 作成
+-+---+
193 | } |
+-----+