목차
없음
본문내용
http://www.bumblebeesoftware.com
위 주소를 클릭하면 다운받을 수 있다, 여기서 Parser Generator라고 적힌 것을 클릭하여 다운 받자.
그리고 Parser Generator에서 lex파일을 생성하자.
File -> New를 클릭하면 text1이라는 노트가 하나 생성되는데 이렇게 하기 보다는 ParserWizard를 사용하자.
아래 그림처럼 ParserWizard를 클릭한다.
그러면 다음과 같은 창이 뜨는데 Name과 Directory는VC++에서 프로젝트 폴더를 만든 것 처럼 프로젝트 폴더의 이름과 위치를 말한다.
원하는 이름과 위치를 지정해주고 "다음"을 클릭하자.
일단 lex를 만들기로 했으므로 아래와 같이 Lex file only로 지정해주고 "다음"을 클릭한다.
lex 파일의 이름을 지정해주는 부분이다, 적당한 이름으로 지정해주자.
다음과 같이 기본적인 틀이 잡힌 lex 파일이 완성된다.
물론 Wizard가 싫은 분은 그냥 File -> New로 해도 상관없다.
File -> New로 파일을 만들었다면 저장할 때 프로그램이 기본적으로 .y로지정해주는데 .y(.Y)는 YACC이므로 LEX를 구현하려고 한다면 .l(.L)을 써야 한다.
이제 lex 코드를 완성시키고 나서 컴파일을 완료하도록 하자.
아래에 추가된 코드의 뜻은 Lex 입력의 가장 간단한 예로 뜻은 다음과 같다.
.은 newline(\n)을 제외한 모든 한 문자를 인식하는 것이며 해당 문자를 토큰으로 찾았을 때 취할 행동이 ECHO라는 뜻이다.
코드 작성이 끝났으면 컴파일을 할 차례이다.
다음 그림과 같이 둘 중에 하나를 클릭하던지 단축키로 컴파일을 해주자.
그러면 프로젝트 폴더에XXX.V, XXX.H, XXX.C 3개의 파일이 생성된다.
여기서 생성한 C 프로그램을 VC++ 6.0에서 실행시키는 방법은 다음과 같다.
우선 설치한 Parser Generator에 있는 header 파일과 library 파일들을 우리가 쓰는 VC++에 추가시켜줘야 한다.
Tools -> Options를 클릭하자.
Directories -> Show directories for:에서 Include files를 선택하고 Parser Generator가 설치된 폴더에서 CPP\INCLUDE를 지정해주자.
마찬가지로Library files를 선택하고 Parser Generator가 설치된 폴더에서 CPP\LIB\MSVC32를 지정해주자.
설정이 끝났으면 이제 VC++로 Parser Generator에서 만든 결과물을 돌려볼 차례이다.1) VC++에서Win32 Console Application으로 프로젝트를 하나 만든다, 물론 빈 프로젝트로 만들어야 한다.
2) 생성된 프로젝트에서 Project -> Settings를 클릭한다. (단축키 Alt + F7)
3) Link Tab을 선택하여 Object/Library Module 필드에 yld.lib를 추가한다.
4) C/C++ Tab을 선택하여 Preprocessor Definitions Box에 "YYDEBUG"를 입력한다.
이제 Parser Generator에서 만든 XXX.h와 XXX.c를 방금 VC++에서 만든 프로젝트의 폴더 안으로 가져오자.
그리고 아래 그림과 같이 Workspace의 Source Files에 XXX.c를, Header Files에 XXX.h를 추가해주면 된다.
다음 그림은 .h와 .c 파일 추가작업을 완료한모습이다.
이제 컴파일, 링크를 하고 실행해보면 된다.
만약 복잡한 lex나 yacc을 만들게 되면 yld.lib 이외에 다른 lib를 요구하게 되는 경우가 있다.
그럴 때는 링크 중에 에러가 발생 수 있는데 에러 메시지를 보고 추가로 요구하는 lib 파일들을 3)처럼 추가해주면 된다.
그리고 Win32 Debug와 Win32 Release 모드에서 요구하는 lib 파일들은 다르다는 것을 명심하자.
예를 들어 yld.lib는 Win32 Debug용이고 yl.lib는 Win32 Release용이다. (d가 있고 없고의 차이이다.)
위 주소를 클릭하면 다운받을 수 있다, 여기서 Parser Generator라고 적힌 것을 클릭하여 다운 받자.
그리고 Parser Generator에서 lex파일을 생성하자.
File -> New를 클릭하면 text1이라는 노트가 하나 생성되는데 이렇게 하기 보다는 ParserWizard를 사용하자.
아래 그림처럼 ParserWizard를 클릭한다.
그러면 다음과 같은 창이 뜨는데 Name과 Directory는VC++에서 프로젝트 폴더를 만든 것 처럼 프로젝트 폴더의 이름과 위치를 말한다.
원하는 이름과 위치를 지정해주고 "다음"을 클릭하자.
일단 lex를 만들기로 했으므로 아래와 같이 Lex file only로 지정해주고 "다음"을 클릭한다.
lex 파일의 이름을 지정해주는 부분이다, 적당한 이름으로 지정해주자.
다음과 같이 기본적인 틀이 잡힌 lex 파일이 완성된다.
물론 Wizard가 싫은 분은 그냥 File -> New로 해도 상관없다.
File -> New로 파일을 만들었다면 저장할 때 프로그램이 기본적으로 .y로지정해주는데 .y(.Y)는 YACC이므로 LEX를 구현하려고 한다면 .l(.L)을 써야 한다.
이제 lex 코드를 완성시키고 나서 컴파일을 완료하도록 하자.
아래에 추가된 코드의 뜻은 Lex 입력의 가장 간단한 예로 뜻은 다음과 같다.
.은 newline(\n)을 제외한 모든 한 문자를 인식하는 것이며 해당 문자를 토큰으로 찾았을 때 취할 행동이 ECHO라는 뜻이다.
코드 작성이 끝났으면 컴파일을 할 차례이다.
다음 그림과 같이 둘 중에 하나를 클릭하던지 단축키로 컴파일을 해주자.
그러면 프로젝트 폴더에XXX.V, XXX.H, XXX.C 3개의 파일이 생성된다.
여기서 생성한 C 프로그램을 VC++ 6.0에서 실행시키는 방법은 다음과 같다.
우선 설치한 Parser Generator에 있는 header 파일과 library 파일들을 우리가 쓰는 VC++에 추가시켜줘야 한다.
Tools -> Options를 클릭하자.
Directories -> Show directories for:에서 Include files를 선택하고 Parser Generator가 설치된 폴더에서 CPP\INCLUDE를 지정해주자.
마찬가지로Library files를 선택하고 Parser Generator가 설치된 폴더에서 CPP\LIB\MSVC32를 지정해주자.
설정이 끝났으면 이제 VC++로 Parser Generator에서 만든 결과물을 돌려볼 차례이다.1) VC++에서Win32 Console Application으로 프로젝트를 하나 만든다, 물론 빈 프로젝트로 만들어야 한다.
2) 생성된 프로젝트에서 Project -> Settings를 클릭한다. (단축키 Alt + F7)
3) Link Tab을 선택하여 Object/Library Module 필드에 yld.lib를 추가한다.
4) C/C++ Tab을 선택하여 Preprocessor Definitions Box에 "YYDEBUG"를 입력한다.
이제 Parser Generator에서 만든 XXX.h와 XXX.c를 방금 VC++에서 만든 프로젝트의 폴더 안으로 가져오자.
그리고 아래 그림과 같이 Workspace의 Source Files에 XXX.c를, Header Files에 XXX.h를 추가해주면 된다.
다음 그림은 .h와 .c 파일 추가작업을 완료한모습이다.
이제 컴파일, 링크를 하고 실행해보면 된다.
만약 복잡한 lex나 yacc을 만들게 되면 yld.lib 이외에 다른 lib를 요구하게 되는 경우가 있다.
그럴 때는 링크 중에 에러가 발생 수 있는데 에러 메시지를 보고 추가로 요구하는 lib 파일들을 3)처럼 추가해주면 된다.
그리고 Win32 Debug와 Win32 Release 모드에서 요구하는 lib 파일들은 다르다는 것을 명심하자.
예를 들어 yld.lib는 Win32 Debug용이고 yl.lib는 Win32 Release용이다. (d가 있고 없고의 차이이다.)