검색결과 리스트
글
이번에는 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