0

나는 다음과 같은 문법에서 (1) 파서 SLR 카메라를 쓰고 있어요 : 모든SLR (1) 파서

1) S -> aSb 
2) S -> cB 
3) B -> cB 
4) B -> ε 

첫째, 관련 LR을 찾기 시작 (0) 증강 된 문법을 사용하여 자동화를 구현하여 다양한 상태를 계산하기 시작했습니다. 내가 찾은 주들은 다음과 같습니다 :

I0 = {S '-> • aSb, S-> cB}
(I0, S) = I1; (I0, a) = I2; (I0, c) = I3; I2 = {S-> a ㆍ Sb, S-> aSb, S-> cB}
(I2, S) = I4; (I2, a) = I2; (I2, c) = I3
I3 = {S-> c · B, B-> cB, B-> ε}
(I3, B) = I5; (I3, ε) = I6; (I3, c) = I7;
I4 = {S-> aS · b}
(I4, b) = I8;
I5 = {S-> CB} •
I6 = {B-> ε •}
I7 = {B-> C의 •의 B, B-> • CB, B-> ε •}
(I7 , B) = I9; (I7, ε) = I6; (I7, c) = I7;
I8 = {S-> ASB •}
I9 = {B-> CB •}

그리고 여기가 LR (0) 기계적있다 :, 그 후

Automaton Picture

I 파서 테이블 않았다 (하지만 내 질문에 대답하기 위해 필요하다고 생각하지) 그래서 나는 의심 : 올바른 방식으로 처리되는 엡실론 전환 무엇입니까? 나는 어떤 점에서 규칙 번호 4로 줄여야하기 때문에 나는 정상적인 성격으로 취급했다. 내가 틀렸다면 그 전환을 어떻게 대우해야합니까? 미리 감사드립니다. 다른 사람에게도 도움이되기를 바랍니다.

답변

3

아니,

혼란이 Y->Ɛ에서 발생했을 수 주 I6를 만들 필요가 없습니다. 증강 된 제작물에 점을 넣을 때 S->A.BA이 완료되고 B이 아직 완료되지 않았 음을 의미합니다 (여기서 완성은 구문 분석의 진행을 의미 함). 당신이 Y->.Ɛ 쓰기 마찬가지로 경우, 그것은 Ɛ가 끝날 아직 의미하지만, 우리는 또한 Ɛnull string 즉, 따라서 Y->.ƐY->.

로 해석됩니다 아무것도 당신이 JFLAP Software를 사용하고

+0

documentation about SLR(1) 매우 감사입니다 볼 수는 없다는 것을 알고있다 많이, 나는 JFLAP 소프트웨어를 알지 못했지만 이런 종류의 일에 매우 도움이되는 것처럼 보입니다. 또한 엡실론 전환에 대한 설명을 주셔서 감사 드리며, 이해하고있는 바에는 엡실론이 다른 상태로 이동 한 다음 축소 할 수있는 상태에서 직접 축소를 적용해야합니다. 다시 한번 고마워. – AndreaScn

+0

@AndreaScn 환영합니다 :)) –

관련 문제