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