wie Flex Keyword entkommen

Ich benutze Flex & Bison unter Linux. Ich habe folgendes eingestellt:

// tokens CREATE {return token :: CREATE;}
SCHEMA {return token :: SCHEMA; }
RECORD {return token :: RECORD;}
[_a-zA-Z0-9] [_a-zA-Z0-9] * {yylval-> strval = strdup (yytext); return TOKEN :: NAME;}
...
// Regeln CREATE SCHEMA NAME ...
RECORD NAME ERSTELLEN ... ...

Alles hat prima funktioniert. Wenn Benutzer jedoch Folgendes eingeben: "Schemadatensatz erstellen ..." (wobei "Datensatz" der Name des zu erstellenden Schemas ist), meldet Flex einen Fehler, da er mit "Datensatz" als Token übereinstimmt und nach der Regel sucht "CREATE SCHEMA RECORD". Ich verstehe, dass Schlüsselwörter ausgeblendet werden können, aber das macht Benutzererfahrungen umständlich. Meine Frage ist

"Wie kann ich die obigen Regeln so gestalten, dass sie "Schemadatensatz erstellen ..." akzeptieren und diese Eingabe mit "SCHEMANAME ERSTELLEN ..." abgleichen?"

Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage