Kişisel EBNF orijinal <S>
yılında özyinelemeli değil, ama deneme BNF geçerli: <S>
tanımın ardından olabilir. BNF'nin aynı dili üretmesini istiyorsanız, bunu yapmamalısınız. Ayrıca, EBNF'niz epsilon
üretemez, bu yüzden bunu <S>
üretiminize eklememelisiniz. Diğer cevap söylediği gibi
, ek olmayan terminaller tanıtmak gerekir:
<S> -> <plusminus> <optionalC> <repeatedA>
<plusminus> -> + | -
<optionalC> -> <C> | epsilon
<repeatedA> -> <A> <repeatedA> | epsilon
Bu orijinal dilbilgisi EBNF elemanlarının basit bir çevirisidir. Ek gereksinimleriniz olsa bile (epsilon-eliminasyon gibi), bu tür bir adımla başlamanız gerekir.
<S>
kuralının özyineli olmadığını unutmayın. Ayrıca, bazı ek nonterminaller için epsilon
kullanılmasına rağmen, <S>
veya <plusminus>
kurallarının bir parçası değildir, böylece EBNF orijinalinde olduğu gibi <S>
bunu üretemez.
Sorunuz belirsiz. * Ne * (yeniden?) Üretebilir * C * ve neden bu kadar kötü? Elinizdeki cevabı oluşturduğunuz aşamaları ve her adımın gerekçesini göstermeniz gerçekten yararlı olacaktır. –