2012-10-14 3 views
0

선생님이 Yacc 파일을 먼저 실행해야한다고 말한 것을 들었습니다. yy.tab.h가 Lex 파일에서 사용되거나 yy.tab.h가 Lex 파일에서 사용될 것이기 때문입니다. 나는 그것에 대해 정말로 혼란 스럽다. 이 두 파일을 실행하기 위해 올바른 순서가 무엇인지 알고 싶습니다.Lex와 Yacc를 순차적으로 실행하려면?

답변

1

Yacc은 파서 생성기이므로 먼저 사용해야합니다. 그런 다음 생성 된 구문 분석기에 의존하는 어휘 분석기를 생성하려면 flex (어휘 분석기 생성기)를 실행해야합니다. 그래서

  1. Yacc에
  2. 플렉스
  3. 여기에 예를

은 yacc는 파서 동안 http://www.usna.edu/Users/cs/lmcdowel/courses/si413/F10/labs/L04/calc1/ex1.html

+0

감사합니다. 링크가 정말 도움이됩니다. – Afaq

0

렉스, 토큰으로 식별자와 같은 문자열이나 예약 된 단어 나 특수 문자를 변환하는 렉서입니다 (IDENTIFIER EQUAL IDENTIFIER SEMICOLON과 같은) 일련의 토큰을 처리 할 수 ​​있습니다. 내가 컴파일 시간에 그들을 실행하는 방법의 순서에 대해 잘 모르겠습니다, 난 아무 차이가 없다 (당신이 그것을 시도 할 수 있습니다;),하지만 컴파일러가 실행되기 전에 둘 다 실행해야합니다.

분명히 런타임시에 lex에 의해 생성 된 코드는 yacc에 의해 생성 된 코드보다 먼저 실행됩니다.

관련 문제