|
|
1
29
你得考虑一下 EBNF 和 阿布纳夫 作为扩展,它可以帮助您在开发语法时更加简洁和表达。 例如,考虑一个可选的非终端符号, 脑钠肽 语法您可以使用中间符号来定义它,例如:
同时 电子束荧光 您可以使用可选语法直接执行此操作:
既然没有办法在 BNF公司 嵌套选项也必须使用中间符号:
对于在
EBNF
或
阿布纳夫
语法,多亏了句法上的糖分,但不符合标准
BNF公司
.
ABNF公司
延伸
EBNF
,允许您执行更复杂的操作,例如指定可以在一起找到多少个符号(即
所以选择一个 阿布纳夫 或 EBNF 因为您的语法选择的语言将使您的工作更容易,因为您将更具表现力,而不会用语法分析器生成器生成的无用符号填充语法,但您不会关心它们! |
|
|
2
5
根据维基百科,ABNF的双引号字符串文本不区分大小写,并且区分大小写的匹配必须定义为数字ASCII值。我认为这是一个缺点。
https://en.wikipedia.org/wiki/Augmented_Backus%E2%80%93Naur_Form#Terminal_values 然而,RFC7405似乎向ABNF添加了区分大小写的字符串文本。 |
|
|
3
2
ebnf是bnf的扩展/更新版本,因此问题变得更简单:ebnf与abnf。我不是专家,但我认为它应该取决于一种语言,你想定义它的语法。还有一些ebnf的可视化工具( http://www.google.co.il/search?sourceid=chrome&ie=UTF-8&q=Ebnf-Visualizer 但是没有看到任何关于ABNF的信息, |
|
|
4
1
一个合理的选择建议使用EBNF,因为它是一个ISO标准: ISO/IEC 14977Â : 1996(E) [PDF]。例如,它用于OMG UML Human-Usable Textual Notation . |
|
|
5
0
|
|
|
tomm · 谷歌表格-将两列相乘,复制第三列 4 年前 |
|
|
ziemsterr · 无法在SQL SELECT语句中找出此语法错误 4 年前 |
|
|
Andrés BolÃvar · AJAX请求未收到我想要的属性 4 年前 |
|
|
clarkk · 当声明向量时,(1)是什么意思? 4 年前 |
|
|
Mike C. · Bash错误[:检查文件是否存在时缺少“]” 4 年前 |
|
|
michael · 错误的脚本和语法问题 4 年前 |