使用ebnf和空格的pyparsing
我正在使用http://pyparsing.wikispaces.com/file/view/ebnf.py来转换我的ebnf定义。
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 个回答
1
要使用 leaveWhitespace()
这个功能,你得把它应用到原本带有空格的标签上。所以可以试试下面的代码:
e = ebnf.parse(ebnf_file)
e['SPACE'] = e['SPACE'].leaveWhitespace()
e['TEST'].parseString('AA BB')