在 BNF 中表达语法产生式通常很方便,例如
A ::= "car"
| "bike"
| ε
其中 ε 表示一个空的产生式规则;即,非终结符“A”可以扩展为终结符“car”、“bike”或什么都没有。但是,除非我重构我的语法,否则我不清楚如何在 FParsec 中表示这样的语法。我知道“选择”组合器,<|>
但据我所知,没有“空”组合器。即,返回 true 且不消耗任何输入的组合器。
我已经搜索了 FParsec 文档的高低,但我没有找到任何这样做的东西,这让我感到惊讶,因为这似乎是一个常见的场景。我对 FParsec (以及一般的组合器)相当陌生,所以也许我只是没有使用正确的词。有什么提示吗?