标签: ebnf-syntactic-exception

EBNF和CFG有什么区别

我知道EBNF可以用来表达Context Free Grammar,但是两者有什么区别吗?

我问是因为有些问题要求将 EBNF 转换为 CFG,但据我目前的理解,它们看起来相同。因此,这种转换背后的意图是什么?

ebnf context-free-grammar ebnf-syntactic-exception

6
推荐指数
1
解决办法
2618
查看次数

扩展的巴科斯诺尔形式 (EBNF) 能否描述一组无序的值?

我想使用扩展巴科斯-诺尔形式 (EBNF) 上下文无关语法定义一组无序的值。在 EBNF 中定义一个无序列表的值很容易,例如:

value = 'A' | 'B' | 'C';
list = value, {',', value};
Run Code Online (Sandbox Code Playgroud)

但是,我怀疑它是否可以用于无序集合。

以下是有效的无序值集的示例:

A, B, C, D
A, B, D, C
A, D, C, B
...
D, C, B, A
Run Code Online (Sandbox Code Playgroud)

虽然无效列表将是:

A, A, C, D
B, C, C, B
A, A, A, A
...
Run Code Online (Sandbox Code Playgroud)

或任意长度的列表。

A, A, B, C, D, A
A, B, C, D, A, B, C, D
...
Run Code Online (Sandbox Code Playgroud)

parsing ebnf context-free-grammar context-free-language ebnf-syntactic-exception

4
推荐指数
1
解决办法
742
查看次数