所以我有一个包含空字符串的语法。语法是这样的:
S->ε
S->表达式;; 小号
当我运行我的解析器时,我收到错误“没有更多的状态要丢弃”,所以我相信我没有正确表示空字符串。那么我将如何去表示它,特别是在 lexer .mll 文件中?
我知道我需要为它制定一个规则,所以我认为我已经把它记下来了。这就是我认为解析器 .mly 文件应该看起来的样子,不包括表达的东西。
s:
| EMPTY_STRING { [] }
| expression SEMICOLON s { $1::$3 }