2

我正在使用http://pyparsing.wikispaces.com/file/view/ebnf.py来转换我的 ebnf 定义。

ebnf def 看起来像这样:

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)

有人有想法/解决方案吗?

4

1 回答 1

1

leaveWhitespace()必须应用于原始包含空格的标签,因此请尝试以下操作:

e = ebnf.parse(ebnf_file)
e['SPACE'] = e['SPACE'].leaveWhitespace()
e['TEST'].parseString('AA BB')
于 2011-09-19T21:05:51.723 回答