理解BNF语法形式的问题

时间:2016-10-07 04:10:23

标签: parsing grammar 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的扩张会有A内部。

1 个答案:

答案 0 :(得分:1)

此处A生产中引号中的括号调用输入中的文字括号。

因此,A构造的有效示例可能是[ z ]

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