(toppers-users 251) Re: ターゲット用の cpp 使用で cfg エラー

Takayuki WAKABAYASHI takayuki @ ertl.ics.tut.ac.jp
2001年 8月 15日 (水) 14:00:20 JST


名市工研 斎藤さん

豊橋技術科学大学の若林です。

Naoki Saito <saito @ nmiri.city.nagoya.jp>さんは書きました:
 > /usr/local/bin/sh-hitachi-elf-cpp -I. -I../include
 >    -I../config/sh3 -I../config/sh3/cat68701
 >    -DCONFIG_60MHZ  -DWITH_STUB sample1.cfg | ../cfg/cfg
 > Program was aborted with fatal errors
 > (null)(13) : [#9"../systask/timer.cfg"INCLUDE] その静的APIはありません

こちらでも確認しました。
上記の問題は、2行連続で#で始まる行があると発生します。
前々から指摘されているパーサ部分の問題です。

この問題は、次のプログラム修正によって回避できます。

---8<---
修正場所 - simpleparser.cpp:171-198
	  if((ch = in->get()) == '#') から 後続するwhileブロックの末尾まで
修正内容
    ch = in->get();
    while( ch != '(' && !in->eof() )
    {
        if(ch == '#')
        {
            do
            {
                ch = in->get();
            }while(ch != '\xa' && !in->eof());
        }
        if(ch == '\xa')
            CurrentLinePos++;

        if(ch != '\n' && ch != '\r' && ch != ' ' && ch != '\t')
            buffer[pos++] = ch;
        ch = in->get();
    }
---8<---

斎藤さん ご報告ありがとうございました。

//-------------------------------------------------
//Takayuki WAKABAYASHI (わかばやし たかゆき)
//  mailto: takayuki @ ertl.ics.tut.ac.jp
//-------------------------------------------------
//豊橋技術科学大学 工学研究科 情報工学専攻
//  組込みリアルタイムシステム研究室
//    Embedded and realtime system laboratory
//      Dept. of information and computer science
//        Toyohashi univ. of technology