2011-09-08 3 views
5

flex/bison을 사용하여 컴파일러를 개발 중입니다. 빌드 출력에이 경고가 표시됩니다. 경고 들소 컴파일

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

도움

하세요?

+1

'컴파일러'가 아니며 '컴파일러'입니다. –

답변

7

소스에 % token 및 % type 선언과 관련이있는 것으로 보입니다. 소스 행 및 관련 토큰 및 유형 선언 없이는 당신을 도울 수 없습니다.

당신이 형 발의 EXPR를 지정하고 경고를

expr : ID; 

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

주를 방출 할 조치 들소없이 작성하는 경우

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

TPTR 유형의 ID 토큰을 정의 자하는 경우 그 들소 수준 나는 현재이 경우 약간 다른 메시지를 인쇄하고있다.

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

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

+0

@VGCE 그래서 경고문을 수정하기 위해 op가 무엇을할까요? 행동에 무엇을 가야합니까? – Har

0

사용 노조 정의 렉스에서 주어진 토큰을 입력 할 :

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

는 명시 적 조치가 필요한이 경고를 해결하려면.