abc プロジェクト
21.11. ParseScript 関数説明

関数名 ParseScript
定義ファイル名pass3.cpp
定義行 78
宣言形式 void ParseScript ( TList * TokenList , int sPos , AnsiString TokStr )
概要 スクリプトの字句解析を行ない、データをセットする。
スクリプトの構文解析は、全ての字句解析が終わってから行う。
戻り値
パラメタ説明 TokenList トークンリスト
sPos トークン位置
TokStr トークン文字列
機能説明
備考

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

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

2 Length

3 Pos

4 SubString

5 Trim

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

関数論理チャート

        |  +----------------------------------------------------------------+ 
    78  +--+ void ParseScript(TList *TokenList,int sPos,AnsiString TokStr)  | 
    79     | {                                                              | 
           +--+-------------------------------------------------------------+ 
    80        +--- AnsiString s,s1;
    81        +--- int pos;
    82        +--- TToken *Token = (TToken *)TokenList->Items[sPos];
    83        +--- TScript *Script;
    84        |    
    85        +--- s = Trim(TokStr);
    86        +--- pos = s.Pos(" ");
              |  +----------------+ 
    87        +--+ if(pos != 0){  | 
              |  +--+-------------+ 
    88        |     +--- s1 = Trim(s.SubString(1,pos));
    89        |     +--- s = Trim(s.SubString(pos,s.Length()));
              |   +-+---+ 
    90        |   |  }  | 
              |   +-----+ 
              |  +------------------------------------------+ 
    91        +--+ if(AnsiCompareText(s1,"!ABCLib$") != 0){ | 
              |  +--+---------------------------------------+ 
              |     |  +----------------------------------------+ 
    92        |     +--+ return; // ABCLibスクリプトではない。  | 
              |     |  +----------------------------------------+ 
              |   +-+---+ 
    93        |   |  }  | 
              |   +-----+ 
    94        +--- Script = new TScript(TokenList,sPos);
    95        +--- Token->Script = Script;
            +-+---+ 
    96      |  }  | 
            +-----+