理解 BNF 语法形式的问题
Issues understanding BNF grammar form
我正在学习 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
此处 A
产生式中引号中的括号要求输入中的文字括号。
因此 A
构造的有效示例可以是 [ z ]
。
关于您的第二点,A
规则是递归的,这意味着尖括号可以无限嵌套在 A
结构中。
我正在学习 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
此处 A
产生式中引号中的括号要求输入中的文字括号。
因此 A
构造的有效示例可以是 [ z ]
。
关于您的第二点,A
规则是递归的,这意味着尖括号可以无限嵌套在 A
结构中。