/ / pypeg: co oznacza str lub List? - python, parsowanie

pypeg: co oznacza str lub List? - python, parsowanie

Próbuję parsować wyrażenie jak nazwa (arg1, arg2 ...)

Więc próbuję:

from pypeg2 import *

class Type (str):
grammar = attr ("type", re.compile (r"[a-z]+"))

class args (List):
grammar = maybe_some ( csl (word) )

class Gen (str):
grammar = Type, "(", args, ")"

Najpierw próbowałem wywodzić Gen z List, ale potem dostaję GrammarTypeError: w gramatyce: "("

Nie rozumiem, co to znaczy wywodzić się z "str", lub pochodzi z "Listy" Gdzie mogę znaleźć wyjaśnienie?

Odpowiedzi:

0 dla odpowiedzi № 1

wypróbuj te zmiany:

from __future__ import unicode_literals, print_function
import re
from pypeg2 import *

class Type (str):
grammar = attr ("type", Symbol)

class args (List):
grammar = maybe_some ( csl (word) )

class Gen (str):
grammar = Type, "(", args, ")"

teste = "name(arg1,arg2, arg3)"

k = parse(teste, Gen)

print(k)