abc プロジェクト
関数名 | IMPLICIT |
定義ファイル名 | pass2.cpp |
定義行 | 1326 |
宣言形式 | void IMPLICIT ( TList * TokenList , int sPos , int ePos ) |
概要 | 暗黙の型宣言の変更 暗黙の型宣言の変更に伴って、暗黙の型宣言テーブルの内容を変更する。
IMPLICIT NONE、 IMPLICIT 型指定子(x1,x2-x3,…) |
戻り値 | |
パラメタ説明 | TokenList トークンリスト sPos 開始位置 ePos 終了位置 |
機能説明 | |
備考 | |
呼出し元関数一覧表
呼出し先関数一覧表
|
名称 |
定義ファイル名 |
定義行 |
1 |
AnsiCompareText |
|
|
2 |
LowerCase |
|
|
3 |
memset |
|
|
参照外部変数一覧表
参照先一覧表
関数論理チャート
| +----------------------------------------------------+
1326 +--+ void IMPLICIT(TList *TokenList,int sPos,int ePos) |
1327 | { |
+--+-------------------------------------------------+
1328 +--- TToken *Token;
1329 +--- int i,j;
1330 +--- int Nest = 0;
1331 +--- char c,c2;
1332 |
1333 +--- setmem(ImplType,sizeof(ImplType),dt_Real);
| +----------------------------------+
1334 +--+ for(i = sPos; i <= ePos ; i++){ |
| +--+-------------------------------+
1335 | +--- Token = (TToken *)TokenList->Items[i];
| | +--------------------------------+
1336 | +--+ if(Token->TokId == tid_Kakko){ |
| | +--+-----------------------------+
1337 | | +--- Nest++;
| | +-+---+
1338 | | | } |
| | +-+---+
| | +-+-------------------------------------+
1338 | | | else if(Token->TokId == tid_Kokka){ |
| | +-+-------------------------------------+
1339 | | +--- Nest--;
| | +-+---+
1340 | | | } |
| | +-+---+
| | +-+-----------------------------+
1340 | | | else if(Token->Str == "-"){ |
| | +-+-----------------------------+
1341 | | +--- Nest--;
1342 | | +--- Token = (TToken *)TokenList->Items[++i];
1343 | | +--- c2 = LowerCase(Token->Str)[1];
| | | +------------------------------+
1344 | | +--+ if((c2 < 'a')||(c2 > 'z')){ |
| | | +--+---------------------------+
1345 | | | +--- c2 = 'z';
| | | +-+---+
1346 | | | | } |
| | | +-----+
| | | +------------------------------+
1347 | | +--+ for(j = c ; j <= c2 ; j++){ |
| | | +--+---------------------------+
1348 | | | +--- ImplType[j] = dt_Real;
1349 | | | +--- ImplType[j+'A'-'a'] = dt_Real;
| | | +-+---+
1350 | | | | } |
| | | +-----+
| | +-+---+
1351 | | | } |
| | +-+---+
| | +-+---------------------------------------------------+
1351 | | | else if(AnsiCompareText(Token->Str,"NONE") == 0){ |
| | +-+---------------------------------------------------+
| | | +--------+
1352 | | +--+ break; |
| | | +--------+
| | +-+---+
1353 | | | } |
| | +-+---+
| | +-+-----------------------------+
1353 | | | else if(Token->Str == ","){ |
| | +-+-----------------------------+
1354 | | +--- c = 0;
| | +-+---+
1355 | | | } |
| | +-+---+
| | +-+-------+
1355 | | | else{ |
| | +-+-------+
1356 | | +--- c = LowerCase(Token->Str)[1];
1357 | | +--- ImplType[c] = dt_Int;
1358 | | +--- ImplType[c+'A'-'a'] = dt_Int;
| | +-+---+
1359 | | | } |
| | +-----+
| +-+---+
1360 | | } |
| +-----+
+-+---+
1361 | } |
+-----+