2015-02-05 59 views
0

試圖解析像 名錶述(ARG1,ARG2 ...)pypeg:str或List是什麼意思?

所以我嘗試:

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, ')' 

首先我想從列表導出根,但後來我得到 GrammarTypeError:語法: 「(」

我不明白是什麼意思,從「STR」,或得自「列表」,在哪裏可以找到一個解釋衍生

+0

哪個部分的文檔有問題? – 2015-02-05 20:50:42

+0

我試圖按照列表找到[鏈接](http://fdik.org/pyPEG/grammar_elements.html#list)的例子。這似乎與我正在嘗試的完全相同,我不明白爲什麼我的'(',我能看到的唯一區別是我使用'('和使用的示例'{' – nbecker 2015-02-06 00:34:32

+0

@nbecker您是否使用過python 3?或者你需要從__future__模塊導入unicode_literal,如果你在python2.7 – spin6lock 2015-04-03 09:19:28

回答

0

試試這個變化:?

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)