【发布时间】:2020-08-23 23:41:12
【问题描述】:
所以我正在尝试为方案制作一个词法分析器,当我运行 JFlex 来转换lever.flex 文件时,我得到一个类似于下面的错误:
Reading "lexer.flex"
Macro definition contains a cycle.
1 error, 0 warnings.
它所指的宏就是这个:
definition = {variable_definition}
| {syntax_definition}
| \(begin {definition}*\)
| \(let-syntax \({syntax_binding}*\){definition}*\)
| \(letrec-syntax \({syntax_binding}*\){definition}*\)
这里定义的所有宏都已实现,但由于某种原因我无法摆脱这个错误,我不知道它为什么会发生。
【问题讨论】:
-
您似乎正在尝试使用词法分析器进行解析。这不是一个好主意。词法分析器应该只将输入分解为单个词素。让解析器解析结果。
标签: scheme lexer lexical-analysis jflex