2011-09-08 11 views
5

flex/bisonを使用してコンパイラを開発中です。 ビルド出力にこの警告があります。警告Bisonコンパイル

warning: type clash ('s' '') on default action

任意のヘルプしてください?

+1

「コンパイラ」ではなく、「コンパイラ」です。 –

答えて

7

あなたのソースの%tokenと%type宣言に関連しているようです。 ソース行とそれに関連するトークンと型宣言がなければ、手助けするのは難しいです。

あなたはタイプのvalの式exprを指定し、任意のアクションバイソンせずに記述する場合バイソンレベルという警告

expr : ID; 

warning: type clash ('tptr' 'val') on default action 

注意を放出する

%{ 
#include "parser.h" 
%} 
%type <val> expr 
%token <tptr> ID 

TPTRタイプのIDトークンを定義した場合私は現在、この場合には少し異なったメッセージをプリントしています。 LEXから自分の与えられたトークンを入力するために労働組合の定義を使用し

expr : ID { $$ = some_conversion_code($1); } 

http://www.gnu.org/s/bison/manual/bison.html#Token-Decl

+0

@VGCEので、警告を修正するためにオペアンプは何をしますか?行動には何が必要ですか? – Har

0

:あなたは明示的なアクションを必要とする、この警告を修正するには

foo.by:10.12:warning: type clash on default action : <tptr> != <val>