我正在使用 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)
有人有想法/解决方案吗?
请您参考如下方法:
必须将 leaveWhitespace() 应用于包含空白的原始标记,因此请尝试以下操作:
e = ebnf.parse(ebnf_file)
e['SPACE'] = e['SPACE'].leaveWhitespace()
e['TEST'].parseString('AA BB')
