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部分を対象とする。
機能説明
備考

呼出し元関数一覧表
名称 定義ファイル名 定義行
1 TTuneRegion::OutputAutoExecCode TuneRegion.cpp 1328
2 TTuneRegion::OutputSrcCode TuneRegion.cpp 3938

呼出し先関数一覧表
名称 定義ファイル名 定義行
1 TMainF::err main.cpp 271
2 MessageBeep

参照外部変数一覧表
名称 定義ファイル名 定義行
1 MainF main.cpp 26

参照メンバ変数一覧表
名称 定義ファイル名 定義行
1 TTuneRegion::TokenEndPos TuneRegion.h 123
2 TTuneRegion::TokenList TuneRegion.h 120
3 TTuneRegion::TokenStartPos TuneRegion.h 122

参照先一覧表
名称 種別 定義ファイル名 定義行
1 TScript クラス pass3.h 151
2 TToken クラス pass1.h 216

関数論理チャート

        |  +----------------------------------------------------------+ 
  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      |  }  | 
            +-----+