2013-04-07 1 views
0

나는 다음과 같은 문법을 작성했습니다), (()()) 등SLR 문법에 빈 프로덕션이 포함될 수 있습니까?</p> <pre><code>S->S (S) S S->e </code></pre> <p>전자 그래서이 문법 인식 언어 (처럼 왼쪽과 오른쪽 괄호 일치하는 모든 문자열을 포함</p> <p>"빈 문자열"), (() 의미 :

그리고 이것은 문법, 여기에 내가 SLR 파싱 테이블 구성 방법하지 SLR입니다 :

  1. 기능 보강이 g를 rammar :

    S1-> S S-> S (S) S S-> E

  2. 그럼 위해 LR (0)을 구성하는 기계적 :

    I0 : S1->. S S -> S (S) S S ->.

    I1 : S1-> S.

    I0에 대한 양해 바랍니다 S-> S.는 (S) S

...을 처음 토큰 어긋남 또는 '('입력 심볼에 대한 작업을 줄일 없다 . 임의의 문자열이 문법이 생성

그래서 SLR 파싱 테이블 상태 I0에 있기 때문에 오류가 발생합니다, 그것은 문자열을 구문 분석 할 때 무엇을 해야할지하지 않습니다. (())

내 질문은 :

이 문법을 SLR이 아닌 범인은 무엇입니까? 빈 문자열 제작입니까? 즉 : S-> e. ?

그리고 일반적으로 SLR 문법은 빈 프로덕션을 가질 수 있습니까? 이 예에서 S-> e와 같습니다. 감사합니다. .

답변

0

대답은 OK입니다. 현재 입력에 대해 시프트/줄이기 동작을 사용할 수없고 빈 제품이 바뀌면이 비어있는 터미널로 이동합니다.

관련 문제