使用 ebnf 和空格进行 pyparsing

发布于 2024-12-05 15:46:16 字数 538 浏览 0 评论 0原文

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

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

I'm using http://pyparsing.wikispaces.com/file/view/ebnf.py to convert my ebnf definition.

ebnf def looks like this:

TEST = A, SPACE, A;

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

if I load the file and try to parse a string like:

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

I get:

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

Does anybody have an ideas/solutions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浊酒尽余欢 2024-12-12 15:46:16

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

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

The leaveWhitespace() has to be applied to the original whitespace-containing tag, so try the following:

e = ebnf.parse(ebnf_file)
e['SPACE'] = e['SPACE'].leaveWhitespace()
e['TEST'].parseString('AA BB')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文