CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): Zaharang ( 자하랑)
날 짜 (Date): 1996년03월21일(목) 08시06분39초 KST
제 목(Title): [Re] Lex applicatin



pascal -> C 로가는 compiler를 짜는 project겠지요

이건 뎔� lex와 yacc을 써야 되는건데,

일단 lex를 씨꼈탑� 할테니 이것만 이야기 하지요.

lex는 말그대로 lexical analyzer인데

주어진 stream을 문법에 맞게 잘라주는 역할을 합니다.

사용법은 문법을 정의해주는 lex file을 만들고...

음. lex file의 형식은 매뉴얼을 참조하셔야 할틴디

대강 token의 정의, token을 이용한 Non-terminal에 따른 action정의
action을 위한 함수정의.   이렇게 3가지 부분으로 되어있습니다.
함수부는 빼도 상관이 없지만.

그다음에 lex ***.lex 하면   lex.yy.c 라는 c program이 생성됩니다.

이걸 cc lex.yy.c -ll 이라고 치면 a.out이라는 실행화일이 생기지요

여기서 lex를 쓰는 관건은 float랑 string을 표현하는 걸꺼에요

제가 예전에 float를 표현하기 위해서 lex로

((({digit}*)\.{digit}+)|({digit}+\.{digit}*)|({digit}*)([Ee][+\-]?{digit}+[fFlL
]
?)|(({digit}*)\.({digit}+)|({digit}+)\.({digit}*))[Ee][+\-]?({digit}+)[fFlL])

라고 무식하게 썼던 기억이 새록새록 나는군유.  몽


그럼 수고하시길.


@자하랑.


--------------------------------------------------------------------
크카카... 왜냐고?  난 천재니까..
천재를 너의 상식으로 이해하려고 하지 말아랑.
흥! 뭐라고?  내가 보기에 넌 조금 특이한 찐따에 지나지 않아.
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.