Я использую YACC в первый раз и привык к использованию грамматики BNF.PLY YACC pythonic синтаксис для накопления списка значений, разделенных запятыми
Я в настоящее время строит list
из type
сек из списка разделенных запятыми (например int
, float
, string
.):
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
логика - это немного клочья и может быть упрощена в однострочный.
Я не нашел никаких конкретных примеров этого онлайн. Любая помощь будет принята с благодарностью!