저는 회사 내에서 20 년이 넘은 독점적 언어를 보완하는 데 도움을주었습니다. 그것은 크고 완전한 튜링 언어입니다. 다른 문법 체계 (예 : Antlr)로 번역하는 것은 옵션이 아닙니다 (나는 이것을 결정하지 않습니다).Yacc 문법 디버거가 있습니까?
대부분의 경우 문법 확장이 순조롭게 진행되었습니다. 그러나 가끔 한동안 나는
- 이 때로는
(내 미약 한 뇌) 이해가되지 않습니다
그래서 yacc 문법을 빨아 들일 수있는 탐색 도구가 있습니까? 브라우저를 개선하고 실험을하고 변경 사항을 디버깅 할 수 있습니까?
프로덕션을 추가하는 경우 "어디서나 사용되는 원자력 생산"(식별자를 생각하면) "규칙 foo와 충돌"(예, 추가 정보, s/r, r/r, 그것보다, 그러나 나는 당신이 나의 표류를 얻는다라고 생각한다). 내 사고 캡을 쓰고 심볼 스택과 상태 머신을 상상해 보는 것 이상의 상호 작용에 대한 힌트를 얻는 것이 좋을 것입니다.
업데이트 : 분명히해야 할 것 같습니다. 우리는 Berkeley Yacc를 사용합니다. 필자는 최근 버전의 Bison을 사용하여 테스트를 수행했습니다. 출력을 위해 문법을 --report = itemset으로 컴파일했습니다. 이 게시물에
내 목표는 외부 도구 기능 보강 yacc를 함께 제공 문법 디버깅 기능을 추구하는 것입니다. 오늘은 기본 설정으로 고통 스럽습니다. Antlr과 함께 사용할 수있는 대화 형 도구를 찾을 수있게 도와주세요.
나는 당신이 무슨 뜻인지 잘 모르겠다. 두 yaccs에서 -d는 "토큰 매크로에 대한 헤더 파일을 출력"을 의미합니다. 스위치 --report = itemset 사용에 대한 추가 정보를 추가했습니다. 이것이 당신이 말하는 것입니까? 모든 상태 전환 정보로 가득 찬 y.output 파일을 생성합니다. 나는 그것을 사용하고 있지만 더 강력하고 쌍방향의 도구를 원했습니다. –
Jerry가 맞습니다. S/R 충돌이 반드시 버그는 아닙니다. 거의 모든 실제 문법에는 많은 것들이 있습니다. – DigitalRoss