2012-09-13 2 views
0

쉼표가 없음을 인식하여 특정 매개 변수의 끝을 찾기 위해 파서를 설정하려고합니다. 따라서 기본적으로 이 외설 때 중지 그냥 '- end_parameter 쉼표구문 분석기에서 매개 변수의 끝을 찾고 shift/reduce 충돌이 발생합니다.

(이 데이터 유형은 단지 목록, 그래서 끝을 나타 내기 위해 거기에 아무것도되지 않습니다 : 그것은이

매개 변수와 같은 매개 변수를 찾기 위해 설정 t 쉼표로 항목 분리)

그리고 end_parameter는 아래에 정의되어 있으며 그 내용을 수행합니다. 파서는 오른쪽 중괄호를 끝으로 인식하여 다른 데이터 유형과 작동하지만 쉼표가 부족하여 종료되는 유형을 설정할 때 이동/축소 오류가 발생합니다. 누구든지 어떤 제안이 있습니까?

+0

문법을 좀 더 자세히 보여 주려면 규칙 * 매개 변수 : end_parameter 쉼표 *가 문제의 원인이 아닐 수도 있습니다. – phlogratos

+0

내 주요 질문은 뭔가 부족한 점을 어떻게 보느냐는 것입니다. 어떻게 든 쉼표가 부족한 모양을 찾아야합니다. –

+1

나중에 뭔가 따라 올지 알 수 없으므로 뭔가 부족하다고 생각할 수 없습니다. 이것은 * 중지 문제 *와 유사하며 결정할 수없는 것으로 입증되었습니다. http://en.wikipedia.org/wiki/Halting_problem – phlogratos

답변

1

당신은 무엇이 아닌지가 아니라 일치하는 규칙을 작성함으로써 사물을 인식합니다. 마지막에 쉼표 쉼표로 구분 된 매개 변수 목록 그래서, 당신이 사용하는 것 :

parameter_list : parameter 
       | parameter_list ',' parameter 
       ; 

은 지금 당신이 사용 상황, 어떤 다른 규칙 같은 맥락에서 사용되는에 따라, 당신은 얻을 수 있습니다 갈등. 그렇다면 y.output 파일을보고 문제를 해결하기 위해 충돌이 어디에서 발생하는지 확인해야합니다.

하나의 규칙에서 충돌이 거의 발생하지 않습니다. 충돌은 일반적으로 여러 규칙의 상호 작용에서 비롯됩니다.