검색결과 리스트
글
이번에는 enum을 이용한 심볼 테이블을 이용한 예제
%{ enum { NONE = 0, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN }; int number; void action(); %} %% oneone { number = SEVEN; action(); } one | ONE { number = ONE; action(); } two | TWO { number = TWO; action(); } three | THREE { number = THREE; action(); } four | FOUR { number = FOUR; action(); } five | FIVE { number = FIVE; action(); } six | SIX { number = SIX; action(); } [a-zA-Z]+ { number = NONE; action(); } %% void action() { if (number != NONE) printf("%s is %d\n", yytext, number); else printf("%s?? I don't learn it.\n", yytext); } main() { yylex(); }
문자로 one이나 혹은 six까지 입력을 했을때 enum에서 정의한 숫자와 매치해서 미리 정해둔 문장을 출력한다.
'개발관련 > (Fast)Lex' 카테고리의 다른 글
Yacc, Bison으로 인한 문제 (0) | 2013.10.25 |
---|---|
lex 시작하기 (0) | 2013.10.24 |
시작하기에 앞서... (0) | 2013.10.24 |
확장자 규칙의 사용 (0) | 2013.10.24 |
lex를 위한 간단한 Makefile (0) | 2013.10.24 |
RECENT COMMENT