2016-07-19 8 views
0

Grako가 생성 한 파서 사용자에게 표시되는 오류를 개선하는 최선의 방법을 찾으려고합니다. Grako가 생성 한 파서가 입력 파일의 구문 분석 문제를 해결할 때 표시되는 기본 구문 분석 오류가 도움이되지 않는 것 같습니다. 오류는 실제 오류가 다른 경우 입력 파일의 한 부분에 문제가 있음을 암시하는 것처럼 보입니다.Grako 생성 파서의 오류 출력 향상 방법

나는 Graco Semantics 클래스를 사용하여 수표가 실패 할 경우 더 나은 오류 메시지를 표시 할 수있는 수표를 넣었지만 수 많은 수의 엣지 경우가있을 수 있습니다. 규칙 구문 분석이 실패 할 수있는 모든 가능한 방법을 포착합니다.

내가 볼 수있는 추천이나 사례가있는 사람이 있습니까?

+0

[이 답변] (http://stackoverflow.com/questions/29044806/do-i-have-a-bug-in-my-grammar-the-parser-generation-tool/29051357)을 참조하십시오. – Apalala

답변

2

PEG 파서는 모든 옵션을 모두 사용하며 마지막 옵션과 가장 가능성이 낮은 옵션에 해당하는 오류가 발생합니다. Grako와

, 당신은이 일치하는 사람입니다 확신 할 수있을 때 특정 옵션에 커밋을 파서을 가지고 문법에 컷을 요소 (~)를 추가 할 수 있습니다.

term = '(' ~ expression ')' | int ; 

잘라 내기 요소는 메모 작성 캐시도 제거하여 파서 성능을 향상시킵니다.