0
我正在使用pyPEG來解析函數的聲明。目前,我有這樣的記載:無法使用Python語法解析函數聲明
from pypeg2 import attr, \
optional, \
csl, \
name, \
List, \
Namespace
class Parameters(Namespace):
grammar = optional(csl(name()))
class Function(List):
grammar = "def", name(), \
"(", attr("params", Parameters), "):"
因此,舉例來說,如果我做的:
>>> import pypeg2
>>> f = pypeg2.parse("def f(a, b):", Function)
我希望f.params
包含a
和b
作爲參數。相反:
>>> f.params
Parameters([], name=Symbol('b'))
只有b
被發現。爲什麼b
是唯一找到的符號?