9

カンマで区切られた文字のシーケンス(おそらく空)のBNF文法を思い付くことができませんが、コンマで開始または終了することはできません。

だからこれはOKです:

  <--- Empty sequence is ok!
A
A,B
A,B,C

これは大丈夫ではありません:

A,
,A
A,,B
AB

空のケースは私を捨てます。私がこれまでに得たものは次のとおりです。

<char-seq> ::= <empty> | <char> , <char-seq> | <char>

しかし、これは次のような文字列を生成しますA,:-(

4

2 に答える 2

13

空のcharシーケンスは、問題を引き起こすものです。次のように、空でないシーケンスに一致するルールを、空のシーケンスと空でないシーケンスの両方に一致するルールから分離する必要があります。

<char-seq> ::= <empty> | <non-empty-char-seq>
<non-empty-char-seq> ::= <char> | <char> , <non-empty-char-seq>
于 2012-09-19T13:47:26.613 に答える
4
<char-seq> ::= <empty> | <chars>
<chars> ::= <char> | <char> , <chars>
于 2012-09-19T13:46:27.740 に答える