как избежать ключевого слова flex
Я использую Flex & Bison на Linux. У меня есть следующие настройки:
// токены CREATE {return token :: CREATE;}
SCHEMA {возвратный токен :: SCHEMA; }
ЗАПИСЬ {возвратный токен :: ЗАПИСЬ;}
[_a-zA-Z0-9] [_a-zA-Z0-9] * {yylval-> strval = strdup (yytext); вернуть TOKEN :: NAME;}
...
// правила CREATE SCHEMA NAME ...
СОЗДАТЬ ЗАПИСЬ ИМЯ ... ...
Все работало просто отлично. Но если пользователи вводят: «создать запись схемы ...» (где «запись» - это имя создаваемой схемы), Flex сообщит об ошибке, поскольку она соответствует «записи» в качестве токена и ищет правило. "СОЗДАТЬ СХЕМУ РЕКОРД". Я понимаю, что можно избежать ключевых слов, но это затрудняет работу пользователей. Мой вопрос:
"Как я могу разработать вышеуказанные правила так, чтобы он принимал «создать запись схемы ...» и сопоставлял этот ввод с «CREATE SCHEMA NAME ...»?"
Спасибо!