Bison 컴파일러가 'routine'의 $ 0 오류를 반환합니다. 선언 된 유형이 없습니다. 글꼴을 선언하는 메시지를 인쇄하려고하므로 함수 본문을 인쇄하기 전에 여는 중괄호를 인쇄해야합니다. 나는이 문서를 읽고, 내가 해당 페이지에서 오는 해결책을 발견 :
%type <type_object> type
: 나는 또한 비 터미널 '유형'에 대한 유형을 지정
fun_decl :
type routine fun {end_fonction();};
routine :
{declare_fonction($0);};
: Bison 3.0.4: Actions 그래서 나는 내 문제에 적용하려
내 실수가 어디에서 왔는지 이해할 수 없습니다.
NB : 비 터미널 루틴에 단순히 빈 명령어를 연결하면 bison도 "충돌로 인해 구문 분석기에서 쓸모가 없다"라는 실수를 반환합니다. 내가 빈 규칙을 여러 개 가질 수 없다는 뜻입니까?
fun_decl :
type {declare_fonction($1);} fun {end_fonction();};
이 들소는 $1
의 유형을 알고있는 이점이있다 :
좋아, 즉 그래도 이상해. – Vito