Augmented Backus-Naur Form中的规则顺序是否重要?
特别是
a = b
b = c
和
b = c
a = b
同样的?
怎么样?
a = b
a =/ c
和
a =/ c
a = b
是否可以使用=/
使用=
而不使用http://hbase_server.com:8080/table_name/key
的同名规则?
答案 0 :(得分:1)
有点儿。虽然它可能对结果没有任何影响,但您应该始终定义规则集,使其依赖于自身的规则已经定义。当您使用某些规则匹配元素时,规则的顺序当然会影响结果。
ABNF不允许您稍后重新定义规则集,因此必须始终相同。 (ABNF不是编程语言,规则不是变量)
a = b
b = c
上面的例子毫无意义。在这个简短的例子中,它显然意味着什么,但在漫长的RFC中,这些线可以用一面文字隔开。
b = c
a = b
那些是一样的吗?
是的,规则不是变量 - 但我建议使用第二种符号/顺序
a = b
a =/ c
=/
定义增量替代方案,或者在RFC中明确定义:
也就是说,初始规则可能会匹配一个或多个替代方案,以及后续规则定义会添加到替代方案。
有些情况可能并不重要,但不能假设它始终如此。
在您的情况下,它与写作
相同a = b / c
出于可读性(和逻辑)的原因, =/
不应该出现在=
之前。
是否可以使用= /而没有使用=?
的同名规则来使用规则
不是,不。 a /= b
只会a = b
。