최근 에 제목에서 언급 한 파싱 기술을 설명 하는 논문을 보았습니다 . 불행히도,이 논문에 사용 된 용어는 제 이해력을 뛰어 넘는 것이므로 구성 알고리즘을보다 직관적으로 파악하려고 노력하고 있습니다. 나는 내가 성공했다고 생각한다 ( 이 프리젠 테이션 은 아하 순간의 원천이었다). 그러나 기술이나 그 안에 포함 된 용어에 익숙한 누군가의 정확성에 대한 검증은 대단히 감사 할 것이다.
나는 해결책에 대한 나의 견해를 설명하고 (정확하다면, 그 기술을 이해하려고 시도하는 다른 사람들에게 도움이 될 수 있다고 생각한다) 나중에 추가 질문을 할 것이다. 오해가 없도록하기 위해 다음 표준 표기법을 사용합니다 : , , , 그리고 종이에서와 같이 규칙을 나타내는 번호 . 그러나 아마도 원래의 논문과는 다른 개념의 이름을 사용할 것입니다.
또한, 설명 전체에 걸쳐 등가 관계 가 사용된다.
구성
파싱 오토 마톤의 내부 항목 두 가지 종류가있다 : 폼의 간단한 LR (0) 항목 I 전화 시프트 항목 형식과 항목 내가 해결 아이템 이라고 부르는 ; 이것들은 파서에게 심볼을 입력 스트림으로 되돌려 보낸 다음 의 첫 번째 심볼에서 규칙 번호 만큼 줄 이도록 지시 합니다.
문법은 규칙 보강 되고 초기 상태에서 시프트 항목 로 구성이 시작됩니다.
이제 오토 마톤을 구성하려면 상태 각 항목에 대해 다음 대안 중 하나를 결정하십시오 .
아이템이 시프트 아이템 인 경우 , 오토 마톤에 전환 가있을 것입니다 . 여기서 는 의 첫 번째 심볼입니다 .
아이템이 완료된 시프트 아이템 , 해결 규칙 을 각 규칙 .
항목이 해결 항목 경우 를 의 첫 번째 기호로 사용하십시오 . 인 경우 각 규칙 에 대해 시프트 항목 를 추가하십시오 . 이외 다른 항목 이 를 점 선점 으로 사용하는 경우 자동 전환기에 전이 를 추가하십시오. 모든 해결 항목 은 해결 항목 을 초래합니다 . .
아이템이 리졸 아이템 경우 미리보기 정보를 제공하지 않고 폐기 할 수 있지만 먼저 해결 아이템 추가합니다. 각 규칙 대한 .
이것은 물론 스케치 일뿐입니다. 실제로, 국가 폐쇄는 먼저 계산 되어야만 전환 / 시프트 및 해결을 처리 할 수 있습니다.
오토 마톤을 shift-resolve 파싱 테이블로 변환하는 것은 사소한 일입니다. 단지, 약간의 변형으로서,이 논문의 저자는 해상도 을 수락 조치로 해석합니다 . 그 결과 오토 마톤을 감안할 때, 단순히 의 이동을 수락 조치로 취급하는 것이 더 편리하다는 것을 알았습니다 .
질문
첫 번째는 분명히 위에서 설명한 프로세스가 올바른지 여부입니다.
두 번째는 등가 관계에 관한 것입니다. 동등성 관계 는 완성 된 교대 품목이 보일 때 어떤 해석 항목을 가져올 지 결정하는 책임이 있다고 추측 할 수 있습니다 . 은 LSLR 파서 의 세트 와 매우 유사하게 보입니다. 이 논문은 11 페이지의 "완전한 동등성 관계"를 설명합니다. 이 관계를 직관적 인 용어로 해석 할 수있는 방법이 있습니까? 다른 관계가 있습니까?
그리고 마지막은 갈등 해결에 관한 것입니다. 이 논문은 shift-resolve automaton에서 무엇이 부적절하게 구성되어 있는지 잘 설명합니다. 기존의 LR 파서에서 충돌을 해결하는 방법과 유사하게 이러한 부적합을 해결하는 방법이 있습니까? 같은 수 yacc를 우선 순위와를 통해 스타일의 분쟁 해결은 ShRe 파서 생성기 구현 될?
이 모든 것을 읽으면 감사합니다. 대답은 크게 감사하겠습니다. :)