【发布时间】:2019-06-02 17:53:40
【问题描述】:
我正在尝试使用 flex & bison 自动生成 fortran 词法分析器和解析器,但是,在扫描以下 fortran 语言时遇到错误:
“如果(i.le.20.and.j.le.10)”
我发现的原因是,".and." 是 fortran 语法中的逻辑运算符,而浮点数可以写为 "20."。所以我的词法分析器会将 "20." 识别为浮点数,基于规则 “匹配最长可能的字符串”,而左边的字符串 ” and.j.le.10" 没有可匹配的规则。
那么我该如何解决这个问题呢?
【问题讨论】:
标签: flex-lexer