2016-10-07 12 views
-1

BNF文法がどのように動作するかを学習しています。いくつかのBNF文法規則の例を示しました。私はこれが何を意味するか理解しようとしていると私は悩みを抱えている:私は引用の括弧の意味を理解していないBNF文法の形式を理解する問題

<S> ::= ‘(‘ <A> ‘)’  
    <A> ::= ‘[‘ <A> ‘]’    
     | <S> ‘{‘ <A> ‘}’ 
     | a | … | z 

。そして限り、私はそれを理解できるように、この表現は

S expanded = '(' <A> ')'. 
A expanded = ‘[‘ <A> ‘]’    
      or <S> ‘{‘ <A> ‘}’ 
      or a or … or z 

よう言って何かする必要がありますが、Aの拡大はそれの内側を持っているでしょう、なぜ私は理解していません。

答えて

1

A生産の引用符で囲まれた括弧は、入力にリテラルブラケットを必要としています。

A構成の有効な例は[ z ]です。

2番目の点として、Aルールは再帰的です。つまり、アングルブラケットはA構造で無限にネストされる可能性があります。