在使用PLY解析包的代码中,我遇到了这样的语法规则:
def p_clauses(self, p):
"""clauses : clauses clause"""
p[0] = p[1] + [p[2]]
p[2]
括号的目的是什么?我在documentation中找不到任何内容。
外括号和内括号之间没有任何关系。外括号的作用与l = [1, 2, 3]
这样的语句相同:它们表示列表的建立。 [p[2]]
构建一个列表,其一个元素为p[2]
。
[这里,p[1]
是列表,并且分配将p[0]
设置为通过将p[1]
和新的单元素列表[p[2]]
相加而创建的新列表。
p [0]是p [1] +包含p [2]的新列表。