룩 어헤드를 구하기 위해서
핸들이 룰의 마지막에 찍혀 있으면
해당 룰의 기원(origin)을 구해야 한다고 하였다.
그렇다면 간선을 역으로 추적하여 올라가야 하는데
기존에 SHIFT 만 배정한 상태인 ag_table이 바로 간선을 표현하는 역할을 한다.
알고리즘은 어떤 교재에나 딱히 나와있지 않으므로
그냥 재귀적으로 추적하는 방식으로 만들었다.
10 번 상태는
아마도 7번 상태에서 Fact 라는 심볼(논터미널) 을 읽고 이동해 온 것일 것이다. 따라서
같은 Fact라는 column 에 대해서 해당 상태번호를 찾고
또 7번 상태에 대해서 다시 기원을 찾아나간다..
핸들이 맨앞에 찍히는 순간 기원을 찾은것이고 그 상태가 몇번 상태(LR 아이템) 인지 기록한다.
'프로젝트 > 어설픈 야크 ,2010' 카테고리의 다른 글
7. 어설픈 야크 만들기 (충돌 해결) (0) | 2011.01.26 |
---|---|
6. 어설픈 야크 만들기 (3) 룩어헤드 구하기 (0) | 2011.01.26 |
6. 어설픈 야크 만들기 (2) pred 함수 만들기 (0) | 2011.01.26 |
6. 어설픈 야크 만들기 (1) lookahead 개념 (0) | 2011.01.19 |
5. 어설픈 야크 만들기 (3) LR(0) 집합 구성하기 (0) | 2011.01.14 |
5. 어설픈 야크 만들기 (2) CLOSURE 와 GOTO 연산 (0) | 2011.01.14 |
댓글을 달아 주세요