我第一次使用YACC並習慣於使用BNF語法。PLY YACC pythonic語法用於累積逗號分隔值列表
我目前正在從一個逗號分隔的列表(例如int
,float
,string
)建設type
的list
一個S:
def p_type(p):
'''type : primitive_type
| array
| generic_type
| ID'''
p[0] = p[1]
def p_type_list(p):
'''type_list : type
| type COMMA type_list'''
if not isinstance(p[0], list):
p[0] = list()
p[0].append(p[1])
if len(p) == 4:
p[0] += p[3]
規則的工作,但我得到這個意義上,我p_type_list
邏輯有點混亂,可以簡化爲一行。
我還沒有找到任何這個在線PLY的具體例子。任何幫助將不勝感激!