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 |
댓글