Я сделал этот эксперимент для Flex, чтобы узнать, вхожу ли я в ABC, если он увидит все A, AB, 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 после компиляции и запуска программы, она отвечает «Got ABC», который действительно удивляет меня, так как я думал, что закон не следить за посещаемый текст, и находит только первый матч; но на самом деле это похоже на самый длинный матч.
Какую стратегию использует Flex для ответа на A тогда и только тогда, когда ее больше нет?