부경대 컴퓨터공학 프로그래밍 언어론 텀프로젝트(lexical analyzer와 Parser작성, mini-C)
- 최초 등록일
- 2021.01.12
- 최종 저작일
- 2019.12
- 27페이지/
MS 워드
- 가격 5,000원

목차
1. 어휘분석기 생성 툴
1) Lex specification 파일 작성
2. 구문분석기 생성 툴
1) 문법
2) Yacc specification 파일 작성
3. 주제
1) FLEX
2) BISON
3) 결과
4.주제2
1) FLEX
2) BISON
3) 결과
5. COMMENT
본문내용
1. 어휘분석기 생성 툴 lex(lexical analyzer)
- Lex는 어휘 분석기(lexical analyzer, lexer)를 만드는 도구이다.
- 어휘 분석기는 주어진 입력 스트림을 의미 단위인 token으로 분리하는 작업을 수행한다.
- Lex자체로는 실행파일을 생성하지 않고 주어진 lex specification(lex가 주어진 입력에 대하여 match하는 패턴과 액션의 집합)을 수항하는 함수 yylex()를 포함하는 파일(lex.yy.c)로 변환하는 작업을 수행한다. 따라서 작성한 어휘 분석기를 수행하고자 한다면 main() 함수 내에서 yylex()를 호출하면 된다.
1) Lex specification 파일 작성
- Lex specification이란 어휘 분석을 위해 필요한 token을 지정하는 패턴과 해당 패턴에 대한 액션을 포함하여 어휘 분석기에서 사용될 사용자 정의 함수, 선언, inlucde등에 대한 명세로 볼 수 있다.
- Lex specification파일의 구성은 아래와 같으며, 파일 확장자는 통상 *.l, *.lex 등을 사용한다.
2. 구문 분석기 생성 툴 Yacc(yet another compiler compiler)
- Yacc은 yet another compiler compiler의 약자로, 컴파일러 생성을 위한 프로그램을 compiler-generator 또는 compiler-compiler라고 부르는데, yacc이 BNF와 같은 형식의 rules의 항목들로부터 파서를 만들어내는 프로그램이다.
- Yacc은 lex에 의해 구해진 token간의 관계를 구성하는 구문 분석기를 생성하는 툴로서 lex의 상위 단계에 위치하며 lex가 생성한 어휘 분석기 yylex()를 내부적으로 호출한다.
참고 자료
없음