Skip to main content
 首页 » 编程设计

python之使用 ebnf 和空格进行 pyparsing

2025年05月04日8傻小

我正在使用 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')