Parsing 理解BNF语法形式的几个问题

Parsing 理解BNF语法形式的几个问题,parsing,grammar,bnf,Parsing,Grammar,Bnf,我正在学习BNF语法是如何工作的,下面给出了一些BNF语法规则的示例。我只是想理解这意味着什么,但我遇到了麻烦: <S> ::= ‘(‘ <A> ‘)’ <A> ::= ‘[‘ <A> ‘]’ | <S> ‘{‘ <A> ‘}’ | a | … | z ::=”(“”) ::= ‘[‘ ‘]’ | ‘{‘ ‘}’

我正在学习BNF语法是如何工作的,下面给出了一些BNF语法规则的示例。我只是想理解这意味着什么,但我遇到了麻烦:

  <S> ::=  ‘(‘ <A> ‘)’     
  <A> ::=  ‘[‘ <A> ‘]’              
      | <S> ‘{‘ <A> ‘}’
      | a | … | z
::=”(“”)
::=  ‘[‘  ‘]’              
|  ‘{‘  ‘}’
|a |…| z
我不明白引号中的括号是什么意思。据我所知,这个表达应该是这样的

S expanded = '(' <A> ')'.
A expanded = ‘[‘ <A> ‘]’              
          or <S> ‘{‘ <A> ‘}’
          or a or … or z
S expanded='('')。
扩展的=“[”]”
或“{”}”
或者a或者…或者z

但是我不明白为什么A的扩展会有一个内部。

这里的
A
产品中的引号中的括号要求在输入中使用文字括号

因此,
a
构造的有效示例可以是
[z]

至于第二点,
A
规则是递归的,这意味着尖括号可以无限嵌套在
A
构造中