lex를 이용한 mini c 스캐너
- 최초 등록일
- 2005.06.04
- 최종 저작일
- 2005.06
- 7페이지/
한컴오피스
- 가격 30,000원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
lex를 이용해서 구한현 mini c 스캐너입니다.
상세한 주석과 완벽한 리포트 내용으로 이해하기 쉬우실 겁니다.제가 다 만듭겁니다. 전공책에도 나와 있지 않습니다.
컴파일 실행환경
lex를 이용하여 컴파일후 실행
◆문제정의
◆문제분석
◆프로그램 구조 설명
◆프로그램 구현
◆프로그램 실행
◆느낀점
본문내용
◆문제정의
Lex를 이용하여 Mini C 어휘 분석기를 구현하는 것이다. 요구사항은 source program에 있는 comment를 제거하여 출력하고 source program에 있는 token에 대하여 token 종류 및 atribute출력, source program의 각 줄에 줄 번호를 붙여서 출력하는 것이다.
◆문제분석
앞의 프로그램에서 행해진 것과 같은 방법으로 구현하는 부분만이 틀리다. 윈도우용 Lex를 이용하여 구현할 것이다.
◆프로그램 구조 설명
토큰을 입력받으면 토큰이 문자인지 숫자인지 아니면 뜻이 있는 특별한 케릭터 문자인지를 확인하여 Attribute를 구성하고 결과값을 출력한다. 그리고 Attribute값을 기반으로 소스코드를 출력하고 라인 번호도 같이 출력한다.
◆프로그램 구현
%{//Attribute Number 부여
enum tnumber {TEOF, tconst, telse, tif, tint, treturn, tvoid, twhile, tequal, tnotequ, tlesse, tgreate, tand,
tor, tinc, tdec, taddAssign, tsubAssign, tmulAssign, tdivAssign, tmodAssign, tident, tnumber, tenter, terror};
int lineNum =1; //라인번호를 위한 변수
int data[1000]; //Attribute Number를 저장하기 위한 배열
int num[1000]; //value를 저장하기 위한 배열
char *cha[1000]; //identifier를 저장하기 위한 배열
char er[1000]; //에러가난 변수를 알기 위한 배열
int ni = 0, ci= 0, ei=0; //위의 배열을 조작하기 위한 변수들
int i=0;
참고 자료
없음