微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对于 JFLEX,是否有 \b 和/或负前瞻的替代方案?

如何解决对于 JFLEX,是否有 \b 和/或负前瞻的替代方案?

我正在构建一个扫描器,但似乎无法找到一种使用 jflex 和 Regex 识别“if”或“else”等运算符的方法。由于 jflex 不完全符合,我不能使用词边界或 (?

解决方法

我们的想法是找到正确书写的运算符,而不是 ifo 或 else。提前致谢。

只需使用“if”和“else”,并有另一个匹配ifoelseo(如标识符)的模式,并且出现在if和{{的模式之后1}}:

else

遵循最大咀嚼规则,这将匹配 "if" { /* it's an if */ } "else" { /* it's an else */ } [a-zA-Z_][a-zA-Z_0-9]* { /* it's an identifier */ } ifo 等输入的标识符规则,并且仅当不再有前缀时才匹配“if”和“else”规则将匹配标识符规则的输入。

如果您的语言没有标识符并且 elseoifo 应该是无效标记,您可以保留模式并更改操作以将其视为无效标记而不是一个标识符。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。