abc プロジェクト
14.8.13. GetPrePostSubregionStr メンバ関数説明 |
メンバ関数名 | GetPrePostSubregionStr |
定義ファイル名 | TuneRegion.cpp |
定義行 | 4337 |
所属名 | TTuneRegion |
アクセス属性 | public |
宣言形式 | AnsiString GetPrePostSubregionStr ( int Mode ) |
概要 | TuneRegion内の PriPro Sub RegionとPostPro Sub Righonの文字列を所得する。 |
戻り値 | PriPro Sub RegionとPostPro Sub Righonの文字列を返す。この文字列は先頭と最 後にコメントを含んだ複数行の文字列となる。 |
パラメタ説明 | Mode 0:Pripro部分、1:PostPro部分を対象とする。 |
機能説明 | |
備考 | |
呼出し元関数一覧表
呼出し先関数一覧表
参照外部変数一覧表
参照メンバ変数一覧表
参照先一覧表
関数論理チャート
| +----------------------------------------------------------+
4337 +--+ AnsiString TTuneRegion::GetPrePostSubregionStr(int Mode) |
4338 | { |
+--+-------------------------------------------------------+
4339 +--- int i,j;
4340 +--- TToken *Token;
4341 +--- TScript *Script;
4342 +--- AnsiString rStr = "";
4343 +--- bool InRegionF;
4344 |
| +--------------------------------------------------+
4345 +--+ for(i = TokenStartPos ; i < TokenEndPos ; i++){ |
| +--+-----------------------------------------------+
4346 | +--- Token = (TToken *)TokenList->Items[i];
4347 | +--- Script = (TScript *)Token->Script;
| | +----------------------+
4348 | +--+ if(Script == NULL){ |
| | +--+-------------------+
| | | +------------+
4349 | | +--+ continue; |
| | | +------------+
| | +-+---+
4350 | | | } |
| | +-----+
| | +----------------------------------------+
4351 | +--+ if((i == 305)&&(TokenEndPos == 343)){ |
| | +--+-------------------------------------+
4352 | | +--- MessageBeep(0);
| | +-+---+
4353 | | | } |
| | +-----+
| | +----------------------------------------+
4354 | +--+ if(Script->ScRegion == scr_substart){ |
| | +--+-------------------------------------+
| | | +--------------------------------------------------------------------------+
4355 | | +--+ if((Mode == 0)&&(Script->ScType == sct_pripro)){ // Sub region Start |
| | | +--+-----------------------------------------------------------------------+
4356 | | | +--- InRegionF = true;
| | | +-+---+
4357 | | | | } |
| | | +-+---+
| | | +-+-------------------------------------------------------------------------------+
4357 | | | | else if((Mode == 1)&&(Script->ScType == sct_postpro)){ // Sub region Start |
| | | +-+-------------------------------------------------------------------------------+
4358 | | | +--- InRegionF = true;
| | | +-+---+
4359 | | | | } |
| | | +-+---+
| | | +-+-------+
4359 | | | | else{ |
| | | +-+-------+
4360 | | | +--- InRegionF = false;
| | | +-+---+
4361 | | | | } |
| | | +-----+
4362 | | +--- // SubRegion Endまで検索する。
| | | +--------------------------------------+
4363 | | +--+ for(j = i ; j <= TokenEndPos ; j++){ |
| | | +--+-----------------------------------+
4364 | | | +--- Token = (TToken *)TokenList->Items[j];
| | | | +----------------------------+
4365 | | | +--+ if(Token->Script != NULL){ |
| | | | +--+-------------------------+
4366 | | | | +--- Script = (TScript *)Token->Script;
| | | | | +------------------------------------+
4367 | | | | +--+ if(Script->ScRegion == scr_start){ |
| | | | | +--+---------------------------------+
4368 | | | | | +--- // Nestしている場合は、region end まで Skipする。
| | | | | | +----------------------------------+
4369 | | | | | +--+ for( ; j <= TokenEndPos ; j++){ |
| | | | | | +--+-------------------------------+
4370 | | | | | | +--- Token = (TToken *)TokenList->Items[j];
| | | | | | | +----------------------------+
4371 | | | | | | +--+ if(Token->Script != NULL){ |
| | | | | | | +--+-------------------------+
4372 | | | | | | | +--- Script = (TScript *)Token->Script;
| | | | | | | | +----------------------------------+
4373 | | | | | | | +--+ if(Script->ScRegion == scr_end){ |
| | | | | | | | +--+-------------------------------+
| | | | | | | | | +--------+
4374 | | | | | | | | +--+ break; |
| | | | | | | | | +--------+
| | | | | | | | +-+---+
4375 | | | | | | | | | } |
| | | | | | | | +-----+
| | | | | | | +-+---+
4376 | | | | | | | | } |
| | | | | | | +-----+
| | | | | | +-+---+
4377 | | | | | | | } |
| | | | | | +-----+
| | | | | +-+---+
4378 | | | | | | } |
| | | | | +-+---+
| | | | | +-+-----------------------------------------+
4378 | | | | | | else if(Script->ScRegion == scr_subend){ |
| | | | | +-+-----------------------------------------+
| | | | | | +--------+
4379 | | | | | +--+ break; |
| | | | | | +--------+
| | | | | +-+---+
4380 | | | | | | } |
| | | | | +-----+
| | | | +-+---+
4381 | | | | | } |
| | | | +-+---+
| | | | +-+---------------------+
4381 | | | | | else if(InRegionF){ |
| | | | +-+---------------------+
4382 | | | | +--- rStr += Token->OrgStr;
| | | | +-+---+
4383 | | | | | } |
| | | | +-----+
| | | +-+---+
4384 | | | | } |
| | | +-----+
| | | +------------------------+
4385 | | +--+ if(j >= TokenEndPos){ |
| | | +--+---------------------+
4386 | | | +--- MainF->err("sub region endが見つかりません。");
| | | +-+---+
4387 | | | | } |
| | | +-----+
4388 | | +--- i = j; // iをSubRegion End位置まで移動
| | +-+---+
4389 | | | } |
| | +-----+
4390 | |
| +-+---+
4391 | | } |
| +-----+
| +------------------+
4392 +--+ if(rStr != ""){ |
| +--+---------------+
| | +----------------+
4393 | +--+ if(Mode == 0){ |
| | +--+-------------+
4394 | | +--- rStr = "c!ABCLib$ pripro sub region start\n"+rStr;
4395 | | +--- rStr += "c!ABCLib$ pripro sub region end\n";
| | +-+---+
4396 | | | } |
| | +-+---+
| | +-+-------+
4396 | | | else{ |
| | +-+-------+
4397 | | +--- rStr = "c!ABCLib$ postpro sub region start\n"+rStr;
4398 | | +--- rStr += "c!ABCLib$ postpro sub region end\n";
| | +-+---+
4399 | | | } |
| | +-----+
| +-+---+
4400 | | } |
| +-----+
4401 |
| +--------------+
4402 +--+ return rStr; |
| +--------------+
+-+---+
4403 | } |
+-----+