Flex에 대해이 실험을 수행하여 ABC를 입력했는지 확인합니다. ABC, ABC 또는 ABC 만 표시되거나 표현식 목록에서 첫 번째 일치 만 표시됩니다.Flex는 A, AB 및 ABC를 어떻게 구별합니까?
%{
#include <stdio.h>
%}
%%
A puts("got A");
AB puts("got AB");
ABC puts("got ABC");
%%
int main(int argc, char **argv)
{
yylex();
return 0;
}
내가 컴파일하고 프로그램을 실행 한 후 ABC를 입력, 내가 렉스 방문 텍스트를 추적하고, 첫 번째 일치하는 항목을 발견하지 않는 생각 때문에 정말 나를 놀라게한다 "있어 ABC"로 응답; 하지만 사실, 그것은 가장 긴 일치를 찾는 것으로 보인다.
더 이상 일치하지 않는 경우에만 Flex가 A에 응답하기 위해 어떤 전략을 사용합니까?