2011-03-25 4 views
3

저는 현재 행복한 파서 생성기를 가지고 놀고 있습니다.Happy와 함께 멋진 구문 오류 메시지를받는 방법은 무엇입니까?

다른 파서 생성기는 "예기치 않은 endline, 예상 'then' '과 같은 멋진 메시지를 줄 수 있습니다. 기쁜 마음으로 나는 현재의 토큰과 오류 위치를 얻습니다.

위와 같은 오류 메시지를받는 방법에 대한 예를 들려 줄 수 있습니까?

+0

각 생산에 여분의 오른쪽을 추가하여 알려진 오류를 잡을 수 있습니다. 항상 끝에 추가해야합니다. 그렇지 않으면 문법의 우선 순위가 떨어집니다. –

+2

해피 워크 (Happy works) - 이는 전통적인 LALR (1) 테이블 기반 파서이며, 오류를 생성하는 데 필요한 정보는 런타임에 쉽게 사용할 수 없기 때문에 일반적으로이를 수행 할 수 없습니다. –

답변

0

일반적으로 내가 들었던 것에서 파서 오류를 원할 경우 행복 대신 Parsec을 사용하십시오.

+0

필자는 Parsec을 지금 사용해 보았지만, 문법의 정의는 행복하고 또한 읽기가 어렵다는 것에 비해 매우 장황하다. 하지만 내가 원한 오류 메시지를 제공합니다. – peq

관련 문제