2017-05-13 6 views
0

시나리오 : 문자 R과 N으로 구성된 모든 비어 있지 않은 문자열 집합을 이 기술하는 RIGHT-recursive 문법에 대한 생산 규칙을 ​​제공합니다. 임의로 인접한 개의 반복을 포함 할 수 있지만 정확히 2 개 또는 정확히 3 개 연속 N.의 반복오른쪽 재귀 문법의 생성 규칙을 작성하는 더 좋은 방법이 있습니까?

답변 :

A -> NB | R + A

B -> N D | N C | N ε

C -> N D | N ε

D -> R + D | R ε

답변

1

잘못된 :

A -> NNB | NNNB | RA | R 
B -> R | RA | ε 

편집 : 위의이 올바르지 않습니다, 나는 시나리오를 오해. 올바른

: 작동 원리

S -> RS | A 
A -> NA | NB 
B -> RB | RC 
C -> NC | ND 
D -> RD | RE | ε 
E -> NE | NF 
F -> RF | ε 

: 그것은 S로 시작 , 즉 0 개 이상의 R을 생성하거나 인 Ns 첫 번째 그룹을 생성하는, 이동할 수 있습니다. 그런 다음 B로 이동하여 N의 첫 번째 그룹과 두 번째 그룹 사이의 R을 생성합니다. 그런 다음 C로 이동하여 N의 두 번째 그룹을 생성합니다. 그런 다음 D로 이동하여 0 개 이상의 R을 생성하고 끝내거나 E로 이동하여 N의 세 번째 그룹을 생성합니다. 마지막으로 0으로 R을 생성하는 F로 이동합니다.

+0

이것에 대해 자세히 설명해 주시겠습니까? – EJoshuaS

+0

2-3 N을 만족시키지 못하는 단 하나의 R (A -> R)로 구성된 문장을 만들 수있는 것처럼 보이므로이 말이 맞을까요? – Josh

+0

오. 아마 니가 원하는 걸 오해했을거야. 그래서 정확히 2 또는 3 개의 N 그룹으로 된 문자열을 생성하는 문법을 원한다고 생각합니다. –