[컴파일러]어휘 분석기
- 최초 등록일
- 2006.06.24
- 최종 저작일
- 2006.06
- 8페이지/ 한컴오피스
- 가격 1,000원
소개글
본 프로그램은 컴파일러 수업을 수강하는 학생들에게 유용한 리포트 자료가
될듯 합니다 . 프로그램은 C언어로 구현되었으며 fgetc함수를 통하여 한자 한자
받아와서 처리하여서 깔끔하게 처리가 되었습니다. 리포트는 총 8장으로 중간에
visio를 통하여 순서도를 넣어 깔끔하고 보기좋은 리포트를 작성하였으므로
바로 제출도 가능할것으로 생각됩니다.
목차
프로그램 설명
제약조건 명시
프로그램 분석
알고리즘
실험방법
본문내용
c소스 파일의 파일명을 입력받아 토큰화하여 토큰의 종류별 좌표로 나누는
프로그램입니다. 토큰은 변수, 함수, 상수, 스트링, 예약어, 전처리기, 헤더파일, 케릭터, 기타기호, 비트연산자, 논리연산자 ,비교연산자, 산술연산자, 증감연산자로
나뉘었습니다. 나누어진 토큰은 TokenData.txt 파일과 Console화면에 출력되어
집니다. 예 ) int == [예약어] == [3, 1] 이런식으로 출력되어 집니다. 수정이 쉽게 함수형태로 나눠 두었습니다.
프로그램 구동 순서는 다음과 같습니다.
1. 처음에 main 함수에 들어가서 사용될 변수에 대한 초기화를 합니다. 이때 함수
및 변수를 저장할 포인터 배열을 malloc로 메모리확보를 각 200개씩 확보해둡니다.
2. printTable함수를 통하여 테이블 종류 및 순서번호를 출력한다.
3. 파일이름을 scanf함수를 통하여 입력받고 isFileExist함수를 통하여 함수가
존재하는지 확인한다. 없으면 다시 입력 받는다.
4. scaner함수를 통하여 입력받은 파일이름을 토큰화 한다. 처음으로 토큰의 첫
문자가 알파벳인지 정수인지 부호인지를 확인한다.
5. 알파벳이면 sortToken함수를 통하여 헤더파일, 전처리기, 예약어, 메서드,
변수로 종류를 구분하여 printEntry함수를 호출하게 된다.
6. 정수라면 다음 토큰이 나오기 전까지 읽어 printEntry함수를 호출하게 된다.
7. 부호라면 각 종류별 switch case 문으로 각 부호별 종류를 나누어 printEntry
함수를 호출하게 된다.
8. printEntry함수를 통하여 입력받은 인자를 통해 콘솔 및 파일에 출력하게 된다.
또한 모든 출력하게 되는 경우 printEntry함수를 호출하게 되므로 이 함수에서
memset를 통하여 메모리도 초기화 하며 토큰 카운터도 초기화하게 된다.
참고 자료
없음