2011-02-01 5 views
0

내가 CFG로 작업 한 이래로 얼마간이 지났습니다. 어쨌든, 나는 모든 연산을 적절하게 처리하는 특정 문법을 가지고 있지만 마지막에는 다른 표준 수학 연산을 배제했습니다.CFG 산술 우선 순위/모호성

S :: = S + T | S-T | T

T :: = nonterminal | ID | -S | (S)

내가 가진 모든 것 .. 나는 -S가 -T이어야 함을 안다. 그러나 부가 적으로 .. 그것은 우선 순위에 무엇을 하는가. 모호한가요? 수학적으로 나는 분명히 정확하지 않을 수 있습니다. 그러나 그것이 모호성의 문제에 영향을 주어서는 안됩니다.

-T는 (S)와 동일한 우선 순위를 갖습니까?

실제로 시작 상태로 되돌아가는 과정에서 이것이 어떻게 발생하는지 이해하려고합니다.

답변

0

-S를 -T로 변경하면 모호성이 해결됩니다. 변경하기 전에 다음은 모호한 문장의 예입니다. -a -b. 그것 - (a-b), 또는 (-a) -b입니까?

그러나 변경으로 인해 더 이상 모호하지 않습니다.

우선 순위와 관련해서는 항상 우선 순위가있는 내부 규칙이기 때문에 특정 예제에서 -T와 (S) 사이에 규칙이있을 필요는 없습니다.