ホーム > ユーザーサポート > FAQ カバレッジマスターwinAMS
【質問】
CasePlayer2にCソースを登録してプロジェクトメニューの「全仕様書生成」を実行してみましたが、「CasePlayer2-E-SYN : ; が必要です」のエラーが発生して、解析が進みません。どのように対処すれば良いですか?
【回答】
「CasePlayer2-E-SYN : ; が必要です.
」のメッセージは、ソースコードにクロスコンパイラコンパイラ特有の記述など、ANSI-Cに準拠しない記述が含まれており、その構文をCasePlayer2が解析できない場合に表示されます。
下の例では、etos.cの2行目に該当する記述が含まれていることを示しています。
仕様書生成開始...
Cソースの詳細解析中...
C:\SL1\SL1 0 Management\support\etc\FAQ\019_07\test\src\etos.c
CasePlayer2-E-SYN : ; が必要です.
C:\SL1\SL1 0 Management\support\etc\FAQ\019_07\test\src\etos.c(2)
CasePlayer2-I-COMP : エラー:1 警告:0
仕様書生成エラー終了.
以下の様な記述がある場合に、このエラーが発生します。
direct int var1;
この例では、「direct」はコンパイラ特有の記述であり、一般的なC言語(ANSI-C)では使われません。このワードがCasePlayer2で正しく解釈できず、その結果エラーが発生します。
CasePlayer2には、このようなコンパイラ特有の記述の意味を指定する機能があります。「direct」は記憶クラスを指定するキーワードであるため、これをCasePlayer2に設定して正しく解釈させるようにします。
「設定」タブにある「Cオプションパラメータ」を開いて下さい。「ユーザーキーワード」の指定にて、
キーワード: direct 種類: STRAGE 後置記述: 空欄
に設定することで、directを記憶クラスのワードとして正しく解釈するようになります。
「ユーザキーワード」「置き換えキーワード」の設定は、*.rvcファイルに書き込まれます。*.rvcファイルはCasePlayer2のプロジェクトフォルダ(*.vprojファイルがあるフォルダ)に自動生成されるテキストファイルです。下記例をご覧ください。
【解析エラーとなる記述とユーザーキーワードの例】
その他ユーザキーワードの設定によってエラー回避可能な例として、下記のようなものがあります。
INT32 value;
キーワード: INT32 種類: TYPE 後置記述: 空欄
※INT32を「型の定義」として解釈させる
near int value;
キーワード: near 種類: TYPEATT 後置記述: 空欄
※nearを「型修飾子の定義」として解釈させる。
キーワードに続いて( )にパラメータを持つような記述の場合は、「後置記述」の項目に「(EXPRESSION)」を指定します。
__asm("LAB2:");
キーワード: __asm 種類: ASM 後置記述: (EXPRESSION)
※インラインアセンブラ記述の定義として解釈させる
応用として、以下の様な記述では、
#define _ARMABI __declispec(__nothrow) __pure
_ARMABI volatile int *func(void);
キーワード: __declispec 種類: IGNORE 後置記述: (EXPRESSION)
※キーワード「__declispec」及び後置記述「__nothrow」を無視
キーワード: __pure 種類: IGNORE 後置記述: 空欄
※キーワード「__pure」を無視