Ich machte dieses Experiment für Flex, um zu sehen, ob ich ABC gebe, wenn es alle A, AB, ABC oder nur ABC oder nur die erste Übereinstimmung in der Liste von Ausdrücken sehen wird.Wie unterscheidet Flex zwischen A, AB und 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;
}
Als ich ABC nach dem Kompilieren und Ausführen des Programms eingeben, antwortet er mit „Got ABC“, die mich wirklich überrascht, da ich dachte, lex nicht besuchter Text nicht zu verfolgen, und findet nur das erste Spiel; aber eigentlich scheint es die längste Übereinstimmung zu finden.
Welche Strategie verwendet Flex, um auf A zu antworten, wenn und nur wenn keine Übereinstimmung mehr besteht?