我在Linux上使用Flex & bison。我已經有以下設置:如何逃避flex關鍵字
//令牌 CREATE {返回令牌:: CREATE;}
的模式{返回令牌:: SCHEMA; }
RECORD {return token :: RECORD;}
[_a-zA-Z0-9] [_a-zA-Z0-9] * {yylval-> strval = strdup(yytext);}返回TOKEN :: NAME;}
...
//規則 CREATE架構名稱...
創建記錄NAME ... ...
一切工作就好了。但是,如果用戶輸入:「create schema record ...」(其中'record'是要創建的模式的名稱),Flex會報告錯誤,因爲它將'record'作爲標記匹配,並且正在查找規則「創建模式記錄」。我明白,關鍵字可以逃脫,但這會讓用戶體驗變得尷尬。我的問題是:
「?我怎樣才能設計出上面的規則,使其接受‘創建模式記錄......’,這輸入到‘創建模式名稱...’匹配」
謝謝!