2009-12-04 2 views
1

yacc 프로그램을 컴파일 할 때 일부 Linux 컴퓨터에서는 정상적으로 작동합니다. 그러나 다른 컴퓨터에서는 문법 규칙이 산재되어있는 c 문 중 하나도 printf까지 실행되지 않는다는 것을 알게되었습니다. 무엇이 문제 일 수 있습니까? 이 컴퓨터에서 컴파일하려고하면 오류가 발생하므로 -ly 옵션을 사용해야한다는 것을 알게되었습니다.yacc 파일에서 c 문이 인식되지 않습니다.

declaration : var_declaration 
      | fun_declaration 
      | '$' {printTable();} ; 

일반적으로 잘 작동 마지막 줄은, 실행되지 않습니다 :

예는 다음과 같다.

+0

샘플 문법/출력 스 니펫이 있습니까 –

+0

이것은 분명히 오류입니다. 그러나 오류라고 생각한 사람은 downvoted입니다. –

답변

2

Yacc을 설치하셨습니까? Yacc의 라이브러리를 코드에 연결하는 것이기 때문에 이상한 일입니다. -ly은 필요 없습니다. 또한 Yacc가 매우 오래되었거나 단순히 그 기계에서 고장 났을 수도 있습니다.

다음과 같은 방법을 시도해 볼 수 있습니다. 문제가있는 플랫폼에서 .y 파일의 독립 실행 형 모드로 yacc를 실행하고 결과 코드를 검사하십시오. C 문장을 찾으십시오. 모든 것을 더 간단하게 만들려면 작은 장난감 문법으로 시작한 다음 실제/큰 문법으로 이동하십시오.

+0

코드가 작동하는 컴퓨터에서 -ly없이 시도했지만 작동이 멈췄습니다. 그래서 문제는 그게 --ly 사용되지 않았다고 생각합니다. – neuromancer

관련 문제