词法分析器定义以匹配关键字或缩写

Lexer definition to match keyword or an abbreviation

为了编写解析器,我不仅要匹配完整的关键字,还要匹配其缩写,例如

我的关键字

必须至少匹配

我的密钥

还有比这更长的任何精确匹配,即

MY-KEYW 或 MY-KEYWO 或 MY-KEYWOR 或完整的 MY-KEYWORD

使用合理的词法分析器片段是否可能,或者我是否必须定义特定的替代匹配项?

TIA

亚历克斯

最简单的方法是做这样的事情:

MY_KEYWORD
 : 'MY-KEY' ('W' ('O' ('R' 'D'?)?)?)?
 ;