lex와 yacc

Visual Sutdio .NET으로
 

LEX, YACC 프로그램 작성 방법
(Parser Generator와 Visual Studio .NET으로 프로그램작성 및 실행하기)

 

  1. Windows용 ALEX & YACC 프로그램의 사용 법을 설명한다. 이 프로그램을 download하여 사용하십시오. 설치는 모든 것을 기본으로 C:드라이브에 설치하시오.
  2. Visual Sutdio .NET을 실행
  3. 프로젝트 생성
    1. [파일]>[새로만들기]>[프로젝트]
    2. [새프로젝 트] 대화상자
          프로젝트 형식 : [Visual C++ 프로젝트]
          템플릿            :[Win32 프로젝트]

          이름 : TestLex
          위치 : D:\Compiler 

          [확인]
    3. [WIn32 응용 프로그램 마법사 - TestLex] 대화상자
          [응용 프로그램 설정]
                응용 프로그램 종류 : [콘솔응용프로그램]
                추가옵션                : [빈프로젝트]
          [마침]
  4. 디렉토리(포함, 라이브러리,소스) 환경설정
    1. [도구]>[옵션]
    2. [옵션] 대화상자
          [프로젝트]>[VC++ 디렉토리]
          플랫폼    : Win32
          다음 파일의 디렉토리 표시 : [포함파일]
              '줄추가', '새로만들어진 라인클릭' ,'파일찾기버튼 클릭', [c:\ParGen\INCLUDE] 선택
          다음 파일의 디렉토리 표시 : [라이브러리 파일]
              '줄추가', '새로만들어진 라인클릭' ,'파일찾기버튼 클릭', [c:\ParGen\ILIB\MSDEV] 선택
          다음 파일의 디렉토리 표시 : [소스파일]
              '줄추가', '새로만들어진 라인클릭' ,'파일찾기버튼 클릭', [c:\ParGen\SOURCE] 선택
    3. [확인]
  5. 라이브러리 연결
    1. 솔루션 탐색기의 프로젝트 [TestLex]선택
    2. 속성창의 [속성페이지 버튼] 클릭
    3. [TestLex 속성 페이지] 대화상자
      1. 구성 : 활성[Debug]    플랫폼 : 활성[Win32]
        [구성속성]>[C/C++]>[전처리기]
                        전처리기 정의 : YYDEBUG을 추가한다.
        [구성속성]>[링커]>[입력]
                        추가종속성 : yld.lib 을 추가한다.
      2. 구성 : [Release]    플랫폼 : [Win32]
        [구성속성]>[링커]>[입력]
                        추가종속성 : yld.lib 입력을 추가한다.
      3. [확인]
  6. Parser Generator로 Text1.l 작성하고 컴파일하기
    1. Parser Generator 실행
    2. [File]>[new]
    3. lex program  Text1.l 작성
      %{
      /*
      * 단어 yjkim의 횟수와 글자의 수를 세어서 출력하는 예제
      * 키보드로 입력하고 화일을 종료시키면(Ctrl z) 
      * 입력된 단어 yjkim과 글자의 수를 세어서 출력한다.?
      * yylex()는 LEX 컴파일러가 만들어내는 함수로
      * 입력이 종료되면 실행이 종료된다. 
      */
      int cnt=0, c=0; 
      %} 

      %%
      yjkim {cnt++;c+=5;}
      .     {c++;}

      %%

      main()
      {
          yylex();
          printf("count of 'yjkim'       : %d\n",cnt);
          printf("count of chatacters : %d\n",c);
      }
    4. [File] > [Save as]
    5. [File Save As] 대화상자
      폴더 :D:\Compiler\TestLex           프로젝트의 디렉토리에 저장
      파일이름 : Text1.l
      [저장]
    6. 컴파일
      [Project] > [Compiler File]
      Text1.c, Text1.h파일이 프로젝트의 디렉토리에 생성된다.
  7. TestLex 솔루션에 파일 추가
    1. 소스파일 Text1.c 솔루션에 추가
      1. [솔루션 탐색기]의 [소스파일]을 선택하고 마우스의 오른쪽버튼 클릭
      2. [추가]>[기존항목추가]>[Text1.c]
    2. 헤더파일 Text1..h 솔루션에 추가
      1. [솔루션 탐색기]의 [헤더파일]을 선택하고 마우스의 오른쪽버튼 클릭
      2. [추가]>[기존항목추가]>[Text1.h]
  8. 빌드
    1. [빌드]>[TestLex 빌드]
  9. 실행
    1. [디버그]>[디버깅하지 않고 시작]
    2. 텍스트입력 및 실행결과

      yjkim dfg

      ^Z
      count of 'yjkim'       : 1
      count of chatacters : 9
      Press any key to continue

출처 : 한밭대학교 김윤중 교수님 홈페이지

by 개념상실 | 2008/01/11 10:33 | 트랙백 | 덧글(0)

◀ 이전 페이지다음 페이지 ▶