abc プロジェクト
21.8. GetScValData 関数説明

関数名 GetScValData
定義ファイル名pass3.cpp
定義行 387
宣言形式 TScValData * GetScValData ( TList * TokenList , AnsiString ValName )
概要 ValNameと同じ名前のスクリプト変数を探して、なければ、新規に作成する。
検索は、TokListのScriptを順番に検索する。
戻り値 ValNameと同じ名前のスクリプト変数のscValDataを返す。なければ、新規に作成し
てそのscValkDataを返す。
パラメタ説明 TokenList トークンリスト
ValName スクリプト変数名
機能説明
備考

呼出し元関数一覧表
名称 定義ファイル名 定義行
1 TScript::TScript pass3.cpp 116

呼出し先関数一覧表
名称 定義ファイル名 定義行
1 AnsiCompareText

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

関数論理チャート

        |  +----------------------------------------------------------------+ 
   387  +--+ TScValData *GetScValData(TList *TokenList,AnsiString ValName)  | 
   388     | {                                                              | 
           +--+-------------------------------------------------------------+ 
   389        +--- int i,j;
   390        +--- TToken *Token;
   391        +--- TScValData *ScValData;
   392        +--- TScript *Script;
   393        |    
              |  +------------------------------------------+ 
   394        +--+ for(i = 0 ;i < TokenList->Count ; i++){  | 
              |  +--+---------------------------------------+ 
   395        |     +--- Token = (TToken *)TokenList->Items[i];
              |     |  +----------------------------+ 
   396        |     +--+ if(Token->Script == NULL){ | 
              |     |  +--+-------------------------+ 
              |     |     |  +------------+ 
   397        |     |     +--+ continue;  | 
              |     |     |  +------------+ 
              |     |   +-+---+ 
   398        |     |   |  }  | 
              |     |   +-----+ 
   399        |     +--- Script = (TScript *)Token->Script;
              |     |  +------------------------------------+ 
   400        |     +--+ if(Script->ScValDataList == NULL){ | 
              |     |  +--+---------------------------------+ 
              |     |     |  +------------+ 
   401        |     |     +--+ continue;  | 
              |     |     |  +------------+ 
              |     |   +-+---+ 
   402        |     |   |  }  | 
              |     |   +-----+ 
              |     |  +------------------------------------------------------+ 
   403        |     +--+ for(j = 0 ; j < Script->ScValDataList->Count ; j++){ | 
              |     |  +--+---------------------------------------------------+ 
   404        |     |     +--- ScValData = (TScValData *)Script->ScValDataList->Items[j];
              |     |     |  +----------------------------------------------------+ 
   405        |     |     +--+ if(AnsiCompareText(ScValData->Str,ValName) == 0){  | 
              |     |     |  +--+-------------------------------------------------+ 
              |     |     |     |  +--------------------+ 
   406        |     |     |     +--+ return ScValData;  | 
              |     |     |     |  +--------------------+ 
              |     |     |   +-+---+ 
   407        |     |     |   |  }  | 
              |     |     |   +-----+ 
              |     |   +-+---+ 
   408        |     |   |  }  | 
              |     |   +-----+ 
              |   +-+---+ 
   409        |   |  }  | 
              |   +-----+ 
   410        +--- ScValData = new TScValData(ValName);
              |  +--------------------+ 
   411        +--+ return ScValData;  | 
              |  +--------------------+ 
            +-+---+ 
   412      |  }  | 
            +-----+