【发布时间】:2021-11-27 17:33:39
【问题描述】:
我正在研究词法分析器。我需要识别 BNF 中的模式并使用正则表达式指定它们。我知道有令牌,例如关键字、标识符、运算符等。到目前为止,我已经定义了正则表达式:
digit=[0-9]
integer={digit}+
letter=[a-zA-Z]
但是给定的标识符 BNF 规则是:
< id > ::= < letter >
| "_"
| < id > < digit >
| < id > < letter >
既然 id={letter}+|"_"|{id}{digit}+ 用于上述 BNF 规则,但它给了我错误,正则表达式包含循环。
【问题讨论】:
标签: regex compiler-construction jflex