본문 바로가기
컴퓨터/프로그래밍

Lex와 Yacc

by Begi 2018. 8. 26.
반응형

Lex와 Yacc


● Lex는 Lexical Analyzer (또는 Scanner 또는 Lexer) 프로그램을 만드는 프로그램이다. Lexical Analyzer에서는 Token 형태로 결과를 출력한다.

● Yacc (Yet Another Compiler-Compiler)는 Parser 프로그램을 만드는 프로그램이다.

● 프로그램을 만드는 프로그램이란 규칙을 입력하면 규칙에 따라 동작하는 프로그램 코드를 생성하는 것을 의미한다. 예를 들면 Lex에 어휘 규칙을 입력하면 규칙에 따라 어휘를 추출하는 Lexical Analyzer C 코드를 생성한다.

● 보통 Lex는 Yacc와 함께 사용한다.

● Flex는 Lex의 오픈 소스 버전이고 Bison은 Yacc의 GNU 버전이다.


Lex와 Yacc 컴파일


flex (또는 lex)는 다음과 같이 컴파일 한다.

 flex test.l

 gcc lex.yy.c -o test.exe

flex와 bison (또는 yacc)는 다음과 같이 컴파일 한다.

 bison -d test.y

 flex test.l

 gcc lex.yy.c y.yab.c -o test.exe


윈도우용 Lex와 Yacc


윈도우용 lex 프로그램인 Flex은 여기에서 다운 받을 수 있다. 윈도우용 yacc 프로그램인 Bison은 여기에서 다운 받을 수 있다. 윈도우용 C++ 컴파일러는 여기에서 다운 받을 수 있다.


우분투에서 Lex와 Yacc 설치하는 방법


터미널에서 다음과 같이 입력한다.

 sudo apt-get install bison flex

bison은 GNU 버전의 yacc이고 flex는 BSD 버전의 lex이다.


반응형

'컴퓨터 > 프로그래밍' 카테고리의 다른 글

컴퓨터 그래픽 공학  (0) 2018.11.29
Ada 언어 용도와 장단점  (0) 2018.09.22
파이썬 입문 예제  (0) 2018.08.17
Stack Overflow 에러 발생원인과 해결  (1) 2018.07.22
폰트 C 소스 파일 생성 프로그램  (0) 2018.07.09

댓글