2015-05-19 156 views
1

我试图得到一个语法,该表达式:CFG OPLIST混乱

的操作数列表是一个逗号分隔的用括号括起来的零个或多个术语列表。

应该是这样OPList = ...

有人能帮助我吗?这个英文让我有点迷茫

回答

1

好吧,让我们看看英文。逗号分隔的术语很容易:

term, term, term, ... 

零或更多是很容易的,因为这表示整个列表可以是空的。用括号括起来是模棱两可的。这可能意味着整个名单可以在这样的括号:

(term, term, term) 

或者,这可能意味着,每学期是在括号中,像这样:

(term), (term), (term) 

与使用该会通常意味着后者的风格。

这给了我们一个CFG:

OPList : element | List "," element | 
List : element "," List | element 
element : "(" term ")" 
+0

虽然我已经回答了这个问题,它可能是更适合于[cs.stackexchange.com(http://cs.stackexchange.com/) –