CFG OPLIST混乱

时间:2015-05-19 17:19:22

标签: grammar context-free-grammar

我正在尝试为此表达式派生语法:

  

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

应该像OPList = ...

有人可以帮帮我吗?这个英语让我有点失落

1 个答案:

答案 0 :(得分:1)

好的,让我们来看看英文。以逗号分隔的术语很简单:

term, term, term, ...

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

(term, term, term)

或者,这可能意味着每个术语都在括号中,如下所示:

(term), (term), (term)

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

这给了我们一个CFG:

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