0

在玩 lbnf/bnfc 时,在某些情况下,我希望它可以选择允许复数形式。然而,它总是说“规则中出现'复数'没有生产”,我不明白为什么。下面的相关行。SomeOther 和 SomeToken 基本上是字符串。

HeadAuthors. Authors::= "AUTHOR" [Plural] ":" SomeOther SomeToken ;

Plural. Plural::= "S" ;

4

1 回答 1

3

我会跳过这个列表,把复数变成这样的规则

rules Plural ::= "S" | ;

有关rules宏的文档,请参阅https://bnfc.readthedocs.io/en/latest/lbnf.html#rules

如果要保留列表,则需要为 Plural 提供分隔符或终止符,请参见此处https://bnfc.readthedocs.io/en/latest/lbnf.html#terminator,否则不会成为列表. 你可以写

terminator Plural "" ;
于 2021-03-02T10:24:54.693 回答