2011-09-19 21 views
2

我正在使用http://pyparsing.wikispaces.com/file/view/ebnf.py來轉換我的ebnf定義。用ebnf和空格進行pyparsing

EBNF高清看起來是這樣的:

TEST = A, SPACE, A; 

A = "AA" | "BB"; 
SPACE = " "; 

如果我加載文件,並嘗試解析像一個字符串:

e = ebnf.parse(ebnf_file) 
e['TEST'].leaveWhitespace().parseString('AA BB') # same without leaveWhitespace() 

我得到:

ParseException: Expected " " (at char 3), (line:1, col:4) 

有誰知道一個想法/解決方案?

回答

1

leaveWhitespace()已被應用到原來的包含空格的標籤,所以請嘗試以下操作:

e = ebnf.parse(ebnf_file) 
e['SPACE'] = e['SPACE'].leaveWhitespace() 
e['TEST'].parseString('AA BB') 
+0

看來工作,非常感謝。 – kelvan