关于EBNF表示法和JSON的问题
最近我一直在研究解析器和语法以及它们是如何工作的。我正在阅读使用EBNF的
http://www.ietf.org/rfc/rfc4627.txt
的JSON正式语法。我对BNF和EBNF的理解非常有信心,但显然我还是不完全理解它。 RFC定义了一个JSON对象,如下所示:
object = begin-object [ member *( value-separator member ) ]
end-object
我理解这里的意图是表达任何JSON对象可以(可选)拥有一个成员,然后是0或更多(值分隔符,成员)对。我不明白为什么星号出现在(value-separator member)
之前。是不是星号应该模仿正则表达式,以便在项目重复0次或更多次之后出现?不应该像这样编写JSON对象语法:
object = begin-object [ member ( value-separator member )* ]
end-object
没有找到相关结果
已邀请:
3 个回复
惭法搽
场竟矩喘崩
所以,符号
根据ABNF定义是正确的,并允许任意数量的重复,包括零。
妒垮