당신의 시간을
감사 (나는 그냥 천 개 변수를 할당하고 다른 아무것도하지 않는 프로그램을 실행할 수 분이 걸릴 수 있습니다 의미)이 될 변수 다음과 같은 방법을 사용하여, 나는 예약어 및 변수와 같은 다중 문자 리터럴을 렉싱하는 데 유용하다는 것을 알게되었습니다. 그것은 (해당 Bison 문법과 다른 것들과 함께) ADAIC docs
%%
[a-zA-Z](_?[a-zA-Z0-9])* return(lk_keyword(yytext));
%%
# define NUM_KEYWORDS 69
KEY_TABLE key_tab[NUM_KEYWORDS] =
{
{"ABORT", ABORT},
{"ABS", ABS},
....
....
....
};
lk_keyword(str)
char *str;
{
int min;
int max;
int guess, compare;
min = 0;
max = NUM_KEYWORDS-1;
guess = (min + max)/2;
to_upper(str);
for (guess=(min+max)/2; min<=max; guess=(min+max)/2) {
if ((compare = strcmp(key_tab[guess].kw, str)) < 0) {
min = guess + 1;
} else if (compare > 0) {
max = guess - 1;
} else {
return key_tab[guess].kwv;
}
}
return identifier;
}
출처
2013-08-12 09:48:48
nic
에서 사용할 수 있습니다. 태그를 지정할 때주의하십시오. Flex는 Adobe/Apache UI 프레임 워크에 사용됩니다. Flex-lexer는 어휘 분석기에 사용됩니다. 나는 그 꼬리표를 고쳤다. – JeffryHouser
@ Reboog711 플렉스는 -97 년 이후로 주위에 있었고, 2004 년 이후 어도비 플렉스를 사용했기 때문에 어쨌든 어휘 용 플렉스와 어도비 플렉스가 그 반대입니다. – nic
@nic 태그를 만든 사람이 아닙니다. Flex 태그는 UI 프레임 워크에 대해 많은 질문을하고 어휘 분석기에 대해서는 거의 제공하지 않습니다. – JeffryHouser