BNF是否有参数修改?

时间:2016-03-24 16:03:31

标签: parsing computer-science bnf ebnf

我的意思是

LISTOF(EL) := "[" EL ("," EL)* "]"
LISTNUM := LISTOF(NUMBER)
LISTID := LISTOF(IDENT)

所以,定义

NUMBER := ('0'-'9')*
IDENT := ('a'-'z'|'A'-'Z')*

我们有以下

[435,657,44]LISTNUM的示例,

[dsf,thg,ewre]LISTID的示例。

或另一个例子(e表示空字符串)

A(0) := e 
A(n) := "a" A(n-1) | e

所以,A(5)是由' a'组成的所有字符串的集合。长度不超过5

有没有科学作品描述类似的东西?我们能否以这种方式描述我们的语法,并且仍然能够在可接受的时间内解析它?

1 个答案:

答案 0 :(得分:0)

常用的元语法如Bnf,Abnf和Ebnf没有参数化规则。但是,按照标准,Iso Ebnf是可扩展的。如果我没记错的话,标准实际上会显示一个引入参数的例子。

您可以免费获得标准here